我有一个LinearLayout类,我有:
TexView | ImageView | EditText | ImageView.
我的最后一个ImageView一直到它所包含的LinearLayout的右侧.ReditText运行得很长,在某些情况下将最后一个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的宽度还是有更好的方法?
答案 0 :(得分: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,为其设置重量。