Android - 以编程方式将宽度百分比设置为 relativeLayout 内的 editText

Android - set width percentage to an editText inside a relativeLayout programatically

我在 relativeLayout 中有一个 editText,我希望 editText 的宽度达到 relativeLayout 总宽度的 70%,我该如何实现? 不使用 LinearLayout

PercentRelativeLayout 推荐用于您的目的。

但如果您仍想使用 RelativeLayout 并更改代码中的百分比,您可以计算宽度并将其设置为您的 EditText,如下所示:

editText.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        editText.getViewTreeObserver().removeOnGlobalLayoutListener(this);

        ViewGroup.LayoutParams params = editText.getLayoutParams();
        params.width = (int) (relativeLayout.getWidth() * 0.7 + 0.5);
        editText.setLayoutParams(params);
    }
});

希望对您有所帮助。