0

我有一个LinearLayout类,其中包含:TexView | ImageView | EditText | ImageView的。我将最后一个ImageView一直拖到LinearLayout的右侧,EditText运行时间很长,在某些情况下将最后一个ImageView推到视图外(或者它似乎将它推出视图)。我想将EditText设置为总宽度的百分比。我尝试使用LinearLayout参数的重量,但它似乎导致视图得到全部的怪异。例如,下面是对的EditText:将EditText设置为LinearLayout中父宽度的百分比

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

所有其他视图跟风,但有较小的权重(.2 .2 0.1),他们全部加起来为1.0。但LinearLayout行永远不会正确放置。

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


这是什么工作的基础上,通过blessenm

提供的答案
//Text 
     addView(mtextNum, new LinearLayout.LayoutParams(
          LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
     //ImageView 
     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); 

     //edit Text: 
    LinearLayout.LayoutParams lpEditText = new LinearLayout.LayoutParams(0,LayoutParams.WRAP_CONTENT,(float)1.0f); 

    //ImageView 
LinearLayout.LayoutParams ll_params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 
                         LinearLayout.LayoutParams.WRAP_CONTENT); 
+0

如果您使用的是xml布局。你可以分享给我们,以便我们指出问题。 – san 2012-01-09 05:06:50

回答

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,并将其设置为重量。

+0

谢谢,但不幸的是没有工作。我根据你的建议编辑了我的帖子。 – Mike6679 2012-01-10 02:40:23

+0

我接受它,现在它工作,因为现在我将最后一个LinearLayout参数更改为WRAP_CONTENT而不是FILL_PARENT。谢谢blessenm! – Mike6679 2012-01-10 02:48:06

相关问题