【问题标题】:Set EditText to percentage of parents's width in LinearLayout在 LinearLayout 中将 EditText 设置为父母宽度的百分比
【发布时间】:2012-02-05 16:49:09
【问题描述】:

我有一个 LinearLayout 类,其中有:

TexView | ImageView | EditText | ImageView.

我将最后一个 ImageView 一直包裹在 LinearLayout 的右侧。EditText 运行时间很长,在某些情况下会将最后一个 ImageView 推到视野之外(或者似乎将它推到视野之外) .

我想将EditText 设置为总宽度的百分比。我尝试使用带有 LinearLayout 参数的权重,但它似乎导致视图变得异常。例如这里是EditText:

 LinearLayout.LayoutParams lpEt = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,
                                                                             LinearLayout.LayoutParams.WRAP_CONTENT,
                                                                             .50f);

所有其他视图都效仿,但权重较小(.2、.2、.1),它们的总和为 1.0。但是 LinearLayout 行的间距永远不会正确。

我应该找出父级(即ListView)的宽度,然后根据父级的宽度显式设置EditText的宽度还是有更好的方法?

【问题讨论】:

  • 如果您使用的是 xml 布局。能否分享给我们,以便我们指出问题所在。

标签: android android-edittext android-linearlayout spacing


【解决方案1】:

我不确定你的线性布局方向是什么,但我猜它是水平的。如果是的话试试这个。

LayoutParams textViewParams = new LayoutParams(LayoutParams.WRAP_CONTENT,
        LayoutParams.WRAP_CONTENT);
textView.setLayoutParams(textViewParams);
LinearLayout.LayoutParams editTextParams = new LinearLayout.LayoutParams(
        0,LayoutParams.WRAP_CONTENT,1f);
editText.setLayoutParams(editTextParams);
LayoutParams imageViewParams = new LayoutParams(LayoutParams.WRAP_CONTENT,
        LayoutParams.WRAP_CONTENT);
imageView.setLayoutParams(imageViewParams);

这将使编辑文本填充 textview 和 imageview 之间的剩余空间。如果您需要其他内容,只需稍微修改代码即可。使用权重时,将要为其设置权重的体重或身高设置为 0。

【讨论】:

  • 谢谢,但很遗憾没有奏效。我根据您的建议编辑了我的帖子。
  • 我收回了它,它现在起作用了,因为现在我将最后一个 LinearLayout 参数更改为 WRAP_CONTENT 而不是 FILL_PARENT。谢谢祝福!
猜你喜欢
  • 2011-03-02
  • 1970-01-01
  • 2022-11-07
  • 1970-01-01
  • 2019-06-28
  • 2013-03-13
  • 2013-03-12
  • 1970-01-01
  • 2013-08-20
相关资源
最近更新 更多