Android開發 - 掌握ConstraintLayout(八)障礙線(Barrier)

羅伊德發表於2018-11-29

本文我們來介紹障礙線(Barrier)的使用,平常在開發中用的相對要少一些,但是在需要時會非常方便。

它的作用是將多個元素放到這個障礙線裡面使時,其中的任何元素的大小或位置變化時都會使它的位置進行改變。

可以理解成一面牆,"牆"裡面任何元素的位置或大小改變時都會導致它的改變,從而保證所有的元素都在"牆"裡面。

下面我們來舉例進行說明,會更加直觀。

  1. 首先,我們先建立兩個元素:

    -w536

  2. 接下來,我們來建立一條垂直的Barrier:

    -w540

  3. 建立後,我們把這兩個View拖到這個Barrier裡面:

    -w765

注意:這裡將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" />
複製程式碼
  1. 預設的Barrier是在所有元素的左面,我們選中它後可以選擇靠右對齊:
    -w254

建立完成後我們來調整其裡面的各個View的大小和位置就可以理解它的作用了:

-w539
-w541

總結

Barrier特別在複雜的頁面佈局的時候非常有用,不需要建立一個容器來放置這些子View來實現這樣的功能了,這也是我們使用ConstraintLayout的初衷,保證層級的簡單和高效。

下一篇:Android開發 - 掌握ConstraintLayout(九)分組(Group),我們將介紹分組(Group)的使用。

如有更多疑問,請參考我的其它Android相關部落格:我的部落格地址

相關文章