【问题标题】:Android - set width percentage to an editText inside a relativeLayout programaticallyAndroid - 以编程方式将宽度百分比设置为 relativeLayout 内的 editText
【发布时间】:2016-12-16 06:23:10
【问题描述】:

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

【问题讨论】:

  • PercentRelativeLayout 现在可用developer.android.com/reference/android/support/percent/… 编辑:抱歉没有看到您询问有关以编程方式执行此操作的问题。
  • @ziondreamt 有没有一种编程方式
  • 您可以使用屏幕百分比来获取屏幕大小和调整文本视图的大小。
  • @AbdulAleemAkhund 是的,但是在绘制视图之前我需要这样做吗?我不想要那个
  • @GustavoSerna 是的,对 :),你能提供更多解释吗?

标签: android width percentage


【解决方案1】:

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);
    }
});

希望对你有帮助。

【讨论】:

  • 它正在工作,但现在我该如何添加“addRule”?例如:params.addRule(RelativeLayout.RightOf, tv)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
  • 2012-02-05
  • 1970-01-01
  • 2021-06-21
  • 2011-04-28
  • 1970-01-01
相关资源
最近更新 更多