本文我們來介紹障礙線(Barrier)的使用,平常在開發中用的相對要少一些,但是在需要時會非常方便。
它的作用是將多個元素放到這個障礙線裡面使時,其中的任何元素的大小或位置變化時都會使它的位置進行改變。
可以理解成一面牆,"牆"裡面任何元素的位置或大小改變時都會導致它的改變,從而保證所有的元素都在"牆"裡面。
下面我們來舉例進行說明,會更加直觀。
-
首先,我們先建立兩個元素:
-
接下來,我們來建立一條垂直的Barrier:
-
建立後,我們把這兩個View拖到這個Barrier裡面:
注意:這裡將View拖進去並不是真正建立了層級關係,我們看程式碼可以知道,僅僅這個Barrier引用了兩個View的ID:
<android.support.constraint.Barrier
android:id="@+id/barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="left"
app:constraint_referenced_ids="button,textView"
tools:layout_editor_absoluteX="104dp" />
複製程式碼
- 預設的Barrier是在所有元素的左面,我們選中它後可以選擇靠右對齊:
建立完成後我們來調整其裡面的各個View的大小和位置就可以理解它的作用了:
總結
Barrier特別在複雜的頁面佈局的時候非常有用,不需要建立一個容器來放置這些子View來實現這樣的功能了,這也是我們使用ConstraintLayout的初衷,保證層級的簡單和高效。
下一篇:Android開發 - 掌握ConstraintLayout(九)分組(Group),我們將介紹分組(Group)的使用。
如有更多疑問,請參考我的其它Android相關部落格:我的部落格地址