Java 如何将线性布局(作为子布局)动态添加到约束布局(父布局)?
我定义了一个方法来创建线性布局并将其添加到父布局。但它不起作用。我想我犯了个错误Java 如何将线性布局(作为子布局)动态添加到约束布局(父布局)?,java,android,Java,Android,我定义了一个方法来创建线性布局并将其添加到父布局。但它不起作用。我想我犯了个错误 要将视图添加到ConstraintLayout,必须使用ConstraintSet添加约束 将动态视图添加到约束布局时,它与其他布局略有不同。您需要指定约束,如下所示:- ConstraintLayout main = (ConstraintLayout) findViewById(R.id.mainLayout); ConstraintSet set = new ConstraintSet()
要将视图添加到ConstraintLayout,必须使用ConstraintSet添加约束 将动态视图添加到约束布局时,它与其他布局略有不同。您需要指定约束,如下所示:-
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);
你有什么例外吗?我没看到,但我没看到红色。它看起来根本不是线性布局!请发布mainLayout.xml的内容几乎没有内容,只是一个浮动按钮。很抱歉,我无法将其作为评论发布,因为它太长,无法发表评论。谢谢。你解决了我的问题。我只是用“main”替换了“layout”,并调整了边距。
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);