示例:
llContainer的top和bottom根据AAA来约束,并且宽高设置为0dp,当控件 AAA设置为 View.GONE 的时候,会导致 llContainer 的高度为 0,从而不显示
<LinearLayout
android:id="@+id/llContainer"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="@+id/AAA"
app:layout_constraintLeft_toRightOf="@+id/BBB"
app:layout_constraintRight_toLeftOf="@+id/CCC"
app:layout_constraintTop_toTopOf="@+id/AAA">
修改:
添加Barrier来设置多个约束,当 AAA 被隐藏时,保证 DDD 是正常显示的
<androidx.constraintlayout.widget.Barrier
android:id="@+id/llContainerBottom"
android:layout_width="0dp"
android:layout_height="0dp"
app:barrierDirection="bottom"
app:constraint_referenced_ids="AAA,DDD" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/llContainerTop"
android:layout_width="0dp"
android:layout_height="0dp"
app:barrierDirection="top"
app:constraint_referenced_ids="AAA,DDD" />
<LinearLayout
android:id="@+id/llContainer"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="@+id/llContainerBottom"
app:layout_constraintLeft_toRightOf="@+id/BBB"
app:layout_constraintRight_toLeftOf="@+id/CCC"
app:layout_constraintTop_toTopOf="@+id/llToolContainerTop">