layoutAnimation

来源:互联网 发布:美工对电脑配置的要求 编辑:程序博客网 时间:2024/06/08 14:19

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


原创粉丝点击