如何在 ConstraintLayout 中访问父级

How to access parent in ConstraintLayout

我正在使用 ConstraintLayout 以编程方式创建视图,我想设置我的按钮视图 topTotop 父视图和 leftToleft 父视图。我该怎么做?

我的代码如下:

Button button = new Button(MainActivity.this);
ConstraintLayout.LayoutParams params = new ConstraintLayout.LayoutParams(widthInt, heightInt);

params.topToTop =  // I want to set it parent
params.leftToLeft = // I want to set it parent
params.setMargins(marginStartint , marginTopInt , 0 , 0);
button.setLayoutParams(params);

您可以使用PARENT_ID

所以你的代码变成

params.topToTop = ConstraintLayout.LayoutParams.PARENT_ID;
params.leftToLeft = ConstraintLayout.LayoutParams.PARENT_ID;

您可以使用 ConstraintSet's Connect method to perform such operations. There PARENT_ID 来引用父 ID。

ConstraintLayout layout = (ConstraintLayout)fndViewById(R.id.mainConstraint);
ConstraintSet set = new ConstraintSet();
set.clone(layout);
set.connect(view.getId(), ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP, 0);
//view refers to the view's constraint to be changed
set.applyTo(layout);

connect

void connect (int startID, int startSide, int endID, int endSide, int margin)

Create a constraint between two widgets.