#android #android-constraintlayout
#Android #android-constraintlayout
Вопрос:
У меня есть два представления рядом друг с другом в горизонтальной цепочке ConstraintLayout.
Однако, когда одно из представлений является View.GONE (программно установлено), я хочу, чтобы другое представление было центрировано внутри его родительского. Я пробовал горизонтальную цепочку, но, похоже, это не работает.
т. е. я хочу перейти от этого:
Однако, когда я устанавливаю кнопку 2 в View.GONE, кнопка 1 остается в том же положении, слегка смещенная влево, как если бы кнопка 2 была View.НЕВИДИМЫЙ, а не View.GONE.
<Button
android:id="@ id/btn_1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/btn_2"
app:layout_constraintTop_toBottomOf="parent" />
<Button
android:id="@ id/btn_2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintLeft_toRightOf="@id/btn_1"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="parent" />
Ответ №1:
Попробуйте это:
<Button
android:id="@ id/btn_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/btn_2"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@ id/btn_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintLeft_toRightOf="@id/btn_4"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
Ответ №2:
Оказывается, у меня была группа ConstraintLayout, которая ссылалась на две кнопки, которые мешали цепочке. Как только я удалил группу, все заработало, как ожидалось.