Barrier(1.1版本引入)
Barrier引用多個小部件作為輸入钥勋,并創(chuàng)建一條基于指定側(cè)的最極端的控件的虛擬指南。
使用場景
如果我們遇到上面的幾種情況勾习,我們看到的控件A轧坎,控件B股耽,控件C蹄咖,我們的控件A褐健,控件B中的內(nèi)容的占位的控件不定,如果我們需要根據(jù)A澜汤,B來約束C則比較的麻煩蚜迅,可能我們需要將A、B再嵌套一層D俊抵,使用D來約束C谁不。
如果我們是使用A、B中的任何一個進(jìn)行約束徽诲,都有可能造成C布局和A或者B重合了的問題
這種情形下刹帕,如果我們使用Barrier控件,則可以很容易的解決問題
<Button
android:id="@+id/btn01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="內(nèi)容A"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/btn02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="內(nèi)容B內(nèi)容B內(nèi)容B內(nèi)容B內(nèi)容B內(nèi)容B"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btn01" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C"
app:layout_constraintLeft_toRightOf="@+id/barrier"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<android.support.constraint.Barrier
android:id="@+id/barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="end"
app:constraint_referenced_ids="btn01,btn02" />
<Button
android:id="@+id/btn01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="內(nèi)容A"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/btn02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="內(nèi)容B內(nèi)容B內(nèi)容B內(nèi)容B內(nèi)容B內(nèi)容B"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btn01" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C"
app:layout_constraintRight_toLeftOf="@+id/barrier"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<android.support.constraint.Barrier
android:id="@+id/barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="start"
app:constraint_referenced_ids="btn01,btn02" />
<Button
android:id="@+id/btn01"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容 A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/btn02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="內(nèi)容B內(nèi)容B內(nèi)容B內(nèi)容B內(nèi)容B內(nèi)容B"
app:layout_constraintLeft_toRightOf="@+id/btn01"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/barrier" />
<android.support.constraint.Barrier
android:id="@+id/barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="btn01,btn02" />
<Button
android:id="@+id/btn01"
android:layout_width="100dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
android:text="內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A內(nèi)容A"
app:layout_constraintLeft_toLeftOf="parent" />
<Button
android:id="@+id/btn02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="內(nèi)容B內(nèi)容B內(nèi)容B內(nèi)容B內(nèi)容B內(nèi)容B"
app:layout_constraintBottom_toBottomOf="@+id/btn01"
app:layout_constraintLeft_toRightOf="@+id/btn01" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C內(nèi)容C容C內(nèi)容C內(nèi)容C內(nèi)容容C內(nèi)容C內(nèi)容C內(nèi)容容C內(nèi)容C內(nèi)容C內(nèi)容"
app:layout_constraintBottom_toTopOf="@+id/barrier"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
<android.support.constraint.Barrier
android:id="@+id/barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="top"
app:constraint_referenced_ids="btn01,btn02" />