Я использую ConstraintLayout, где я покажу, как показано ниже
Я хотел бы скрыть First
(используя ушел) и тот вид, который, как я ожидаю, будет таким, как показано ниже (где ElasticBody растянется, чтобы использовать также оригинальное пространство вида First
.
Однако, когда я на самом деле установил First
на gone
, мой вид оказался таким, как показано ниже (все изображение из представления Android Studio Design). Мой Elastic Body
тоже отсутствует, а высота странно увеличена.
Мой код макета, как показано ниже
<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="wrap_content"
android:padding="16dp">
<TextView
android:id="@+id/txt_first"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#0ff"
android:text="First"
android:visibility="gone"
android:textSize="26sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/txt_body"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/txt_body"
android:layout_width="0dp"
android:background="#f0f"
android:layout_height="wrap_content"
android:text="Elastic Body"
android:textSize="26sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/txt_tail"
app:layout_constraintStart_toEndOf="@+id/txt_first"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/txt_tail"
android:background="#ff0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tail"
android:textSize="26sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/txt_body"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
(Обратите внимание, если вы удалите gone
, вы получите первый вид изображения).
Почему это так? Как я могу исправить это, когда мой First
исчезнет, я смогу правильно растянуть Elastic Body
?
p/s: я знаю, как это сделать в LinearLayout и RelativeLayout... но интересно, если это ограничение для ConstraintLayout?