Java 使用ConstraintSet设置视图

Java 使用ConstraintSet设置视图,java,android,Java,Android,我对ConstraintSet属性有一个问题,我已经完成了constraint布局,我希望它通过代码更改一些约束,但是当我创建新的ConstraintLayout并将上下文设置为“this”,然后设置ContentView(myLayout)时,它是一个空白。如何使它显示布局,我已经做了早些时候 onCreate() 如果只想扩大在xml中创建的约束,通常只需执行以下操作: setContentView(R.layout.activity_gr); 没有别的 如果你想在程序上搞乱约束集之类的

我对ConstraintSet属性有一个问题,我已经完成了constraint布局,我希望它通过代码更改一些约束,但是当我创建新的ConstraintLayout并将上下文设置为“this”,然后设置ContentView(myLayout)时,它是一个空白。如何使它显示布局,我已经做了早些时候

onCreate()


如果只想扩大在xml中创建的约束,通常只需执行以下操作:

 setContentView(R.layout.activity_gr);
没有别的

如果你想在程序上搞乱约束集之类的东西,可以这样做:

ConstraintLayout myLayout = new ConstraintLayout(this);
ConstraintSet constraints = new ConstraintSet();
constraints.clone(context, R.layout.activity_gr);
myLayout.setConstraintSet(constraints);
setContentView(myLayout);
clone()
-调用中的引擎盖下,布局已充气。请记住,这只会保留布局的约束部分

然后可以通过编程方式添加约束,如:

constraints.connect(R.id.some_id, TOP, R.id.some_other_id, BOTTOM)
如果我正确解释了您的问题,我认为您应该在xml中的ContrainLayout上设置和标识,如
my_container
,并执行以下操作:

setContentView(R.layout.activity_gr);
ConstraintLayout layout = findViewById(R.id.my_container)
ConstraintSet constraints = new ConstraintSet();
constraints.clone(layout);
// Edit constraints of the constraints set
// Apply your new constraints to the inflated layout
constraints.applyTo(layout)

如果只想扩大在xml中创建的约束,通常只需执行以下操作:

 setContentView(R.layout.activity_gr);
没有别的

如果你想在程序上搞乱约束集之类的东西,可以这样做:

ConstraintLayout myLayout = new ConstraintLayout(this);
ConstraintSet constraints = new ConstraintSet();
constraints.clone(context, R.layout.activity_gr);
myLayout.setConstraintSet(constraints);
setContentView(myLayout);
clone()
-调用中的引擎盖下,布局已充气。请记住,这只会保留布局的约束部分

然后可以通过编程方式添加约束,如:

constraints.connect(R.id.some_id, TOP, R.id.some_other_id, BOTTOM)
如果我正确解释了您的问题,我认为您应该在xml中的ContrainLayout上设置和标识,如
my_container
,并执行以下操作:

setContentView(R.layout.activity_gr);
ConstraintLayout layout = findViewById(R.id.my_container)
ConstraintSet constraints = new ConstraintSet();
constraints.clone(layout);
// Edit constraints of the constraints set
// Apply your new constraints to the inflated layout
constraints.applyTo(layout)

您创建的ConstraintLayout完全为空,并且在设置之后,您可以通过将布局设置为名为activity_gr.xml的xml布局来覆盖它。您创建的ConstraintLayout完全为空,并且在设置之后,您可以通过将布局设置为名为activity_gr.xml的xml布局来覆盖它