Android里的ConstraintLayout是個(gè)非常強(qiáng)大的工具仑嗅,它有效的解決了Android里L(fēng)ayout的層級(jí)嵌套的問題强岸。使用一個(gè)ConstraintLayout可以實(shí)現(xiàn)之前多個(gè)Layout才能實(shí)現(xiàn)的效果。
本篇文章就介紹下ConstraintLayout里比較進(jìn)階用法之一:Group熊楼。
在我們的日常開發(fā)中只盹,經(jīng)常遇到這種場(chǎng)景:幾個(gè)控件需要同時(shí)消失或者出現(xiàn)翎苫。在沒有ConstraintLayout的時(shí)代,這個(gè)操作很容易:因?yàn)檫@些控件一般都在一個(gè)父ViewGroup里零聚,所以只要把這個(gè)ViewGroup設(shè)置消失或出現(xiàn)即可袍暴。
但是,當(dāng)我們引入了ConstraintLayout之后隶症,因?yàn)橄藢蛹?jí)嵌套政模,所有的控件都“平攤”在作為root的ConstraintLayout下面了。在這種情況下蚂会,要方便的同時(shí)操作幾個(gè)控件淋样,似乎比以前麻煩了。
Group就是為了解決這個(gè)問題而誕生的胁住。
Group示例
首先趁猴,我們定義2個(gè)控件:
<Button
android:id="@+id/btn_a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="200dp"
android:layout_marginLeft="30dp"
android:text="這是控件A"/>
<Button
android:id="@+id/btn_b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="@id/btn_a"
app:layout_constraintTop_toBottomOf="@id/btn_a"
android:layout_marginTop="30dp"
android:text="這是控件B"/>
然后刊咳,我們定義一個(gè)Group:
<android.support.constraint.Group
android:id="@+id/group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible"
app:constraint_referenced_ids="btn_a,btn_b"/>
通過app:constraint_referenced_ids="btn_a,btn_b"
這句,讓group把btn_a和btn_b兩個(gè)控件包含進(jìn)來儡司。注意娱挨,雖然Group也是一個(gè)控件,但是在UI上是看不見的捕犬。
接下來跷坝,我們可以通過操作這個(gè)Group來同時(shí)操作btn_a和btn_b兩個(gè)控件:
findViewById(R.id.group).setVisibility(View.GONE);
上面這行代碼可以把btn_a和btn_b同時(shí)設(shè)置為View.Gone。
注意:一個(gè)控件可以屬于多個(gè)Group碉碉,這是允許的探孝。此時(shí),這個(gè)控件的屬性由xml里最后一個(gè)包含它的Group決定誉裆。
以上就是對(duì)ConstraintLayout里Group的介紹顿颅,希望可以幫到你。