一起Talk Android吧(第五百零九回:约束布局中的组功能一)

文章介绍了Android约束布局中的Group和Layer功能,用于组合管理多个组件。Group主要用于统一隐藏或显示控件,而Layer则增加了设置背景色和应用动画的能力,功能更为强大,推荐使用Layer进行更丰富的组件管理。
摘要由CSDN通过智能技术生成

各位看官们大家好,上一回中咱们说的例子是"多层布局功能",这一回中咱们说的例子是"约束布局中的组功能"。闲话休提,言归正转, 让我们一起Talk Android吧!

功能介绍

我们在这里说的组功能表示把多个组件组合在一起形成一个组,然后通过组来统一管理组内的控件。而且我们讨论的组功能只限于约束布局内,其它布局暂时不讨论。

使用方法

Group

约束布局提供了Group表示一个组,使用时可以在布局管理器中选择多个组件,然后点击右键->Helper->Group,会自动把所有的组件放到一个组中。该操作会生成以
以下代码:

 <androidx.constraintlayout.widget.Group
    android:id="@+id/group"
    android:visibility="invisible"
    app:constraint_referenced_ids="circle_out_1,circle_out_3,circle_out_5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
</androidx.constraintlayout.widget.Group>

代码中的constraint_referenced_ids属性中有多个id值,这些id就是我们在布局管理器中选择的组件。

如果大家不喜欢使用布局管理器,也可以直接在xml中输入上面的代码,然后手动把其它组件的id赋值给constraint_referenced_ids属性。

这两种方法实现的效果相同,只是一种是通过布局管理器自动创建Group,另外一种是通过代码手动创建Group.注意:不管使用哪种方法,都需要修改组的id,方便以后使用。

组创建好以后,可以在Group中通过visibility属性来控制组的显示和隐藏功能,比如:示例代码中给该属性赋值为invisible后,组的控件全部被隐藏了。

目前只发现Group有显示和隐藏组件的功能,Group的长度,对齐等属性都没有效果,背景色属性也没有效果,ObjectAnimator动画更是没有效果.

Layer

除了上面介绍的组外,约束布局还提供了Layer表示一个组,它和Group的用法完全相同,可以通过布局管理器添加,也可以直接通过代码实现,下面是示例代码:

<androidx.constraintlayout.widget.Layer
    android:id="@+id/group"
    app:constraint_referenced_ids="circle_out_1,circle_out_3,circle_out_5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
</androidx.constraintlayout.widget.Layer>

Group通过组件的ID来包含组件,Layer也是,它们使用相同的属性:constraint_referenced_ids.

我在约束布局推出之前经常使用线性布局中来包含多个组件构成一个组,然后通过组统一管理多个组件,比如统一设置背景色;现在使用Layer可以实现此功能,它还可以添加监听器来响应事件,也可以设置动画.这些功能是Group所不具备的.

对比总结

我们介绍了两种组:GroupLayer. 其中Group只能单纯地用来显示或者隐藏组内的控件;而Layer可以设置背景色,绑定ObjectAnimaor动画。这些功能是非常适用的功能。相比之下,Layer的功能比Group的功能更加强大。我更加推荐大家使用Layer.

注意:不论是Group还是Layer都只能在约束布局中使用。

看官们,关于"约束布局中的组功能"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值