2

我无法让我的EditTexts适合并排共享相同空间的LinearLayout以编程方式将EditText添加到LinearLayout中android

这里是做它的代码:

LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); 

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     textFieldsLayout = (LinearLayout) findViewById(R.id.LinearLayout2); 

     for(int i=1; i <= 8; i++){ 

      final EditText ed = new EditText(this); 

      ed.setText("" + i); 

      ed.setInputType(2); 

      ed.setLayoutParams(lparams); 

      textFieldsLayout.addView(ed); 
     } 
    } 

这个代码管理添加EditText我的布局,但他们似乎并排,并且有空的空间在LinearLayout年底,当我改变PARAMS到WRAP_CONTENT,只有第一个EditText添加到布局填充布局和其他人不会出现在那里,任何想法我在这里做错了什么?

+0

后的你的代码是如何对齐它们在视图中的截图,然后我们就可以想出一个办法来帮助你更好。 – Sana 2012-08-01 17:14:49

+0

我已经得到它,但最后一个添加比以前更多一点点 – 2012-08-01 17:25:38

回答

2

添加layout_weight布局PARAMS

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams 
         (LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 1f); 
+0

你知道为什么最后一个是获得比第一个更多的空间? – 2012-08-01 17:26:00

+0

如果我们使用layout_weight属性,它会调整等距离的所有视图。 – 2012-08-01 17:41:47

+0

刚刚意识到最后一个需要更多的空间,因为它们中有更多的数字。谢谢! – 2012-08-01 19:40:41

0

为了让您的观点延伸到填充的LinearLayout,你必须确保宽度设置为0,权重设置为1

这将给他们一个甚至分裂。它基本上告诉系统推迟设置宽度直到它的父母被测量。然后上来让孩子们填充他们拥有的任何空间。

+0

我试着将宽度设置为0,然后添加1f到我的参数,但这只会让我的edittexts非常薄 – 2012-08-01 16:39:12

相关问题