在android中以编程方式将EditText添加到LinearLayout

时间:2012-08-01 16:24:25

标签: android android-edittext android-linearlayout layoutparams

我无法让EditTexts并排LinearLayout并排分享相同的空间。

以下是执行此操作的代码:

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末尾有空格,当我将参数更改为WRAP_CONTENT时,第一个EditText添加到布局填充布局而其他人没有出现在那里,任何想法我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

将layout_weight添加到布局参数

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

答案 1 :(得分:0)

要使视图拉伸以填充LinearLayout,您必须确保将宽度设置为0并将权重设置为1.

这将使他们平分。它基本上告诉系统推迟设置宽度直到测量其父级。然后上来,让孩子们填写他们所拥有的任何空间。