我定义了一种创建线性布局并将其添加到父布局的方法。但它没有用。我想我弄错了。
public void methodName() {
LinearLayout linearLayout = new LinearLayout(MainActivity.this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
linearLayout.setLayoutParams(params);
linearLayout.setOrientation(LinearLayout.HORIZONTAL);
linearLayout.setBackgroundColor(Color.RED);
ConstraintLayout main = (ConstraintLayout) findViewById(R.id.mainLayout);
main.addView(linearLayout);
}
最佳答案
要将 View 添加到 ConstraintLayout,您必须使用 ConstraintSet 添加约束。
在约束布局中添加动态 View 时,它与其他布局有点不同。您还需要像下面这样指定约束:-
ConstraintLayout main = (ConstraintLayout) findViewById(R.id.mainLayout);
ConstraintSet set = new ConstraintSet();
LinearLayout linearLayout = new LinearLayout(MainActivity.this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
linearLayout.setLayoutParams(params);
linearLayout.setOrientation(LinearLayout.HORIZONTAL);
linearLayout.setBackgroundColor(Color.RED);
main.addView(linearLayout,0);
set.clone(main);
set.connect(linearLayout.getId(), ConstraintSet.TOP, main.getId(), ConstraintSet.TOP, 60);
set.applyTo(main);
关于java - 如何将线性布局(作为子级)动态添加到约束布局(父级)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48963585/