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



我无法让我的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的末尾有空白,当我将params更改为WRAP_CONTENT时,只有添加到布局中的第一个EditText填充了布局,其他的都没有出现在那里,你知道我在这里做错了什么吗?

将layout_weight添加到布局参数

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

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

这将使他们平分秋色。它基本上是告诉系统推迟设置宽度,直到测量到其父项为止。然后上来让孩子们填满他们所有的空间。

最新更新