layoutAnimation

layoutAnimation是为viewgroup的子项统一设置进入动画的一种动画,原理也很好理解,就是在绘制子项前根据参数计算出每一项的动画的startOffset,也就是启动等待时间,然后依次为子项设置动画即可。


和其他动画一样,有xml静态和代码两种设置方式:

1.xml:

<android.support.v7.widget.RecyclerView
        android:id="@+id/rv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layoutAnimation="@anim/list_anim">
    </android.support.v7.widget.RecyclerView>
直接设置相应viewgroup的layoutAnimation属性为anim文件夹下的这个动画文件。


list_anim:

<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
    android:delay="1"
    android:animationOrder="normal"
    android:animation="@anim/item_anim"/>
三个属性也比较好理解,animationOrder确定子项的出场顺序,包括正序,倒序和随机。animation就是子项出场动画了,就是普通的视图动画。

delay指的是两个动画间的间隔,这个值的最终确定是 delay*(item_anim里的duration)。


2.代码设置(这里用的是kotlin)

	val anim= AnimationUtils.loadAnimation(this,R.anim.item_anim);
        val controll=LayoutAnimationController(anim)
        controll.order=LayoutAnimationController.ORDER_NORMAL
        controll.delay=1.0f
        rv.layoutAnimation=controll
        rv.adapter=MyAdapter(list)

可以看到,LayoutAnimationController类就是xml中的LayoutAnimation,思路和xml一样。


需要注意的是,这样设置的动画只有在viewgroup初始化的时候才有效,如果在onCreate后添加数据或者为列表设置适配器都是无效的,如果想要设置子项添加和删除时的动画,可以参考:http://blog.csdn.net/harvic880925/article/details/50985596


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值