生成任意数量的视图
Generate any number of Views
我想根据用户在 EditText
中输入的分号数量生成多个 TextView
。
到目前为止它有效,唯一的问题是所有 TextView
都在彼此之上,所以我需要将第二个 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
添加视图。在我的例子中,我创建了一个带有 Button
、EditText
和 LinearLayout
的布局以及 ScrollView
内的垂直方向。然后,在 Java 代码中,我只是将以下行添加到循环中:
mLinearLayout.addView(textViews[i]);
我想根据用户在 EditText
中输入的分号数量生成多个 TextView
。
到目前为止它有效,唯一的问题是所有 TextView
都在彼此之上,所以我需要将第二个 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
添加视图。在我的例子中,我创建了一个带有 Button
、EditText
和 LinearLayout
的布局以及 ScrollView
内的垂直方向。然后,在 Java 代码中,我只是将以下行添加到循环中:
mLinearLayout.addView(textViews[i]);