以编程方式更改按钮约束设置并填充空间

我正在Android中开发应用程序,现在我遇到按钮对齐的问题。我需要动态设置约束(我有3箱子按钮排列的),我有一个ConstraintLayout:以编程方式更改按钮约束设置并填充空间

<android.support.constraint.ConstraintLayout 

android:id="@+id/bottomLayout"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@drawable/border"

android:padding="3dp"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintLeft_toLeftOf="parent"

app:layout_constraintRight_toRightOf="parent"

app:layout_constraintTop_toBottomOf="@+id/middleLayoutText"

app:layout_constraintVertical_chainStyle="packed" >

<Button

android:id="@+id/firstButton"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

<Button

android:id="@+id/secondButton"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

</android.support.constraint.ConstraintLayout>

正如你可以看到它包含两个按钮,现在编程我需要设置自己的定位,例如在一个第一个在第二个旁边。我使用此代码做:

ConstraintLayout layout = (ConstraintLayout) constraintLayout.findViewById(R.id.bottomLayout); 

ConstraintSet set = new ConstraintSet();

set.clone(layout);

Button firstButton = (Button) layout.findViewById(R.id.firstButton);

firstButton.setText(buttonsOption.getFirstButton().getContent().getText());

Button secondButton = (Button) layout.findViewById(R.id.secondButton);

secondButton.setText(buttonsOption.getSecondButton().getContent().getText());

set.connect(firstButton.getId(), ConstraintSet.LEFT, ConstraintSet.PARENT_ID, ConstraintSet.LEFT);

set.connect(firstButton.getId(), ConstraintSet.RIGHT, secondButton.getId(), ConstraintSet.LEFT);

set.connect(secondButton.getId(), ConstraintSet.START, firstButton.getId(), ConstraintSet.END);

set.connect(secondButton.getId(), ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END);

set.setHorizontalChainStyle(firstButton.getId(),ConstraintSet.CHAIN_PACKED);

set.setHorizontalChainStyle(secondButton.getId(),ConstraintSet.CHAIN_PACKED);

set.applyTo(layout);

现在看起来是这样的:image,但我想做到这一点的第一个调整他的宽度,以填补在左边,第二个空间的右侧部分。我试过layout_width的组合,设置每个连接等,但仍然没有成功。

在此先感谢您的帮助。

回答:

您是否尝试过使用

set.constrainWidth(firstButton.getId(), ConstraintSet.MATCH_CONSTRAINT); 

set.constrainWidth(secondButton.getId(), ConstraintSet.MATCH_CONSTRAINT);

您也应该检查约束集文档here。

以上是 以编程方式更改按钮约束设置并填充空间 的全部内容, 来源链接: utcz.com/qa/266324.html

回到顶部