I am trying to convert a horizontal LinearLayout that has 4 buttons of the same size as ConstraintLayout . The problem is that when I set one or more buttons in android:visibility="gone" in LinearLayout , the rest of the buttons change to take up all the space (all will be the same size), and in ConstraintLayout buttons will be removed, but still take up space.
EDIT: Depending on the state of the application, various buttons will be displayed.
What do I need to change so that ConstraintLayout behaves like LinearLayout ?
EDIT: I found an error in ConstraintLayout (link restrictions), so I updated it and the images (the problem still exists).
LinearLayout xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <Button android:id="@+id/b1" android:text="B1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="50" /> <Button android:id="@+id/b2" android:text="B2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="50" android:visibility="gone" /> <Button android:id="@+id/b3" android:text="B3" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="50" /> <Button android:id="@+id/b4" android:text="B4" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="50" /> </LinearLayout>
EDIT: ConstraintLayout xml:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/b1" android:text="B1" android:layout_width="0px" android:layout_height="wrap_content" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@+id/b2" app:layout_constraintTop_toTopOf="parent" app:layout_constraintHorizontal_weight="1" /> <Button android:id="@+id/b2" android:text="B2" android:layout_width="0px" android:layout_height="wrap_content" android:visibility="gone" app:layout_constraintLeft_toRightOf="@+id/b1" app:layout_constraintRight_toLeftOf="@+id/b3" app:layout_constraintTop_toTopOf="parent" app:layout_constraintHorizontal_weight="1" /> <Button android:id="@+id/b3" android:text="B3" android:layout_width="0px" android:layout_height="wrap_content" app:layout_constraintLeft_toRightOf="@+id/b2" app:layout_constraintRight_toLeftOf="@+id/b4" app:layout_constraintTop_toTopOf="parent" app:layout_constraintHorizontal_weight="1" android:layout_marginTop="0dp"/> <Button android:id="@+id/b4" android:text="B4" android:layout_width="0px" android:layout_height="wrap_content" app:layout_constraintLeft_toRightOf="@+id/b3" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintHorizontal_weight="1" /> </android.support.constraint.ConstraintLayout>

Hanan source share