使用淡入式动画动画ListView
项,onScrollStateChanged
,
我一直在尝试下面的代码
LayoutAnimationController controller = AnimationUtils.loadLayoutAnimation(
this, R.anim.anim2);
getListView().setLayoutAnimation(controller);
getListView().setOnScrollListener(new OnScrollListener(){
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
}
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
if(scrollState == 0) {
LayoutAnimationController controller = AnimationUtils.loadLayoutAnimation(
MainActivity.this, R.anim.anim2);
getListView().setLayoutAnimation(controller);
}
}
});
}
如何运作
当我们加载ListView
时,首先是项目淡出
当我们向上或向下滚动时,淡入效果将应用于列表中的所有项目(VISIBLE)
我想要什么
假设我们有20个项目的列表
现在当列表加载前10个项目可见时,淡入效果将应用于这10个
当我们向下滚动已经可见的列表时,项目应保持原样,并且淡入效果应该应用于之前不可见的剩余项目,例如,如果我们滚动到第15项前5项(来自早期10)[仍然可见]应保持原样,动画应适用于剩下的5个(总共15个)[现在可见]
以上代码会发生什么
如果我们向下或向上滚动,淡入效果适用于所有可见的项目,包括前5个项目和接下来的5个项目
我的问题是
1)我们可以识别哪些项目已经可见并且动画已经完成(并防止动画应用于它们)
2)将动画应用于现在可见的剩余项目