利用ConstraintLayout实现布局改变的动画

本文介绍了如何利用ConstraintSet动态改变ConstraintLayout的约束,并结合TransitionManager创建布局切换时的动画效果。强调了在使用ConstraintSet时,所有子视图需设置ID的重要性,以及在API 19及以上版本中TransitionManager的使用方法和自定义Transition的可能性。
摘要由CSDN通过智能技术生成

ConstraintSet简介
ConstraintSet可以让你方便地通过代码来设置ConstraintLayout的约束。可以利用ConstraintSet创建并保存约束,将这些约束传入一个已经存在的ConstraintLayout。可以利用下面三种方法来创建一个ConstraintSet。

手动指定每一个view的约束

c = new ConstraintSet(); c.connect(....);

从layout中clone

c.clone(context, R.layout.layout1);

从一个已有的ConstraintLayout中clone

c.clone(clayout);

这里需要注意一下,在调用clone()方法的时候,必须保证这个父布局的所有子布局都设置了 id,不然会报如下错误:
因为其要保存所有布局文件中view的约束,如果有些view没有设置id的话,就无法获取这个view的约束了。

java.lang.RuntimeException: Unable to start activity ComponentInfo{
   com.liuniukeji.lightlanguage/com.mufeng.light.ui.activity.CurriculumClassifyActivity}: java.lang.RuntimeException: All children of ConstraintLayout must have ids to use ConstraintSet
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值