【问题标题】:Generate any number of Views生成任意数量的视图
【发布时间】:2020-05-18 20:35:34
【问题描述】:

我想根据用户在EditText 的输入之间输入的分号数生成多个TextViews。
到目前为止它仍然有效,唯一的问题是所有TextViews 都在彼此之上,所以我需要将第二个TextView 定位在第一个之下,依此类推。
我尝试使用 setY 但它没有改变视图的位置或者它们完全消失了。
有没有办法实现这一点,或者这是LayoutInflater 的情况?

public class MainActivity extends AppCompatActivity {

    private EditText et1;
    private ScrollView sv1;
    private ConstraintLayout cl1;

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

        et1 = findViewById(R.id.editText);
        sv1 = findViewById(R.id.scrollView);
        cl1 = new ConstraintLayout(this);
        sv1.addView(cl1);
    }

    public void splitToChips(View v) {
        String content = et1.getText().toString();
        String[] products = content.split(";");

        TextView[] textViews = new TextView[products.length];

        for(int i = 0; i<products.length; i++) {
            textViews[i] = new TextView(this);
            cl1.addView(textViews[i]);
            textViews[i].setText(products[i]);
        }
    }
}

【问题讨论】:

  • 使用 LinearLayout 和方向 verticle 并在该布局中添加视图。

标签: java android android-layout android-view


【解决方案1】:

您应该向LinearLayout 添加视图。在我的例子中,我创建了一个带有ButtonEditTextLinearLayout 的布局以及ScrollView 内部的垂直方向。然后,在 Java 代码中,我简单地将以下行添加到循环中:

mLinearLayout.addView(textViews[i]);

【讨论】:

    猜你喜欢
    • 2021-11-13
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    相关资源
    最近更新 更多