【问题标题】:Adding EditText to LinearLayout programmatically in Android在 Android 中以编程方式将 EditText 添加到 LinearLayout
【发布时间】:2019-11-14 21:32:16
【问题描述】:

我无法让我的EditTextsLinearLayout 并排共享相同的空间。

这是执行此操作的代码:

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 添加到布局填充布局,其他人没有出现在那里,知道我在这里做错了什么吗?

【问题讨论】:

  • 发布您的代码如何在视图中对齐它们的屏幕截图,然后我们可以找到更好地帮助您的方法。
  • 我已经知道了,但是最后添加的比以前的要拉伸一点

标签: android android-edittext android-linearlayout layoutparams


【解决方案1】:

将 layout_weight 添加到布局参数

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

【讨论】:

  • 你知道为什么最后一个比第一个获得更多空间吗?
  • 刚刚意识到最后一个会占用更多空间,因为它们中的数字更大。谢谢!
【解决方案2】:

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

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

【讨论】:

  • 我尝试将宽度设置为 0,然后将 1f 添加到我的参数中,但这只会使我的编辑文本非常薄
猜你喜欢
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多