示例:
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">