我正在尝试重现此ListView项目:
我已成功使用这些代码行(不计算动画xml文件)来实现它:
//Set animation
if(position > lastAnimPosition){
lastAnimPosition = position;
Animation anim = AnimationUtils.loadAnimation(context, R.anim.item_slide_in);
anim.setStartOffset(50 * position);
row.startAnimation(anim);
}
所以动画很好,但是当我向下滚动时,有偏移的问题 - 它只是巨大的,它让人感觉应用程序加载项目的时间太长了。 我需要做的是找出何时应该禁用偏移量 - 或者如何仅为首次显示的项目启用偏移量。
答案 0 :(得分:8)
在xml中使用布局动画属性
文档:http://developer.android.com/reference/android/view/ViewGroup.html#attr_android:layoutAnimation
将文件添加到layout_item_slide_in.xml
的res / anim文件夹中,该文件夹引用@anim/item_slide_in
<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
android:delay="0.5"
android:animation="@anim/item_slide_in" />
现在,将listview xml轻微更改为包含android:layoutAnimation属性和值
<ListView
android:id="@+id/foo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layoutAnimation="@anim/layout_item_slide_in"" />
这将实现您想要的第一个加载动画样式,而无需在代码
中执行此操作