如何在ConstraintLayout中访问父级

12

我正在使用 ConstraintLayout 动态创建一个视图,并且我想将我的按钮视图设置为父视图的 topTotopleftToleft。我应该如何实现?

下面是我的代码:

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);
2个回答

27

您可以使用PARENT_ID

这样,您的代码就变成了

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

2
你可以使用ConstraintSetConnect方法来执行这样的操作。其中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);

连接 void connect(int startID, int startSide, int endID, int endSide, int margin) 创建两个小部件之间的约束。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接