ListView项目动画:逐个添加一些延迟

时间:2014-10-21 13:52:14

标签: android listview animation android-listview

想要实现我ListView的填充,其效果如下:第一项旋转X并淡入,后面是第二项,依此类推。

一种方法很明显 - 逐项添加项目到适配器(就像in that post),而动画由LayoutTransition对象处理,我提前设置。

然而,我有一种奇怪的感觉,就像为了动画效果而添加物品一样有点拐杖。有人知道怎么做得更好吗?

UPD: 一些细节:我希望只有在基础数据发生变化时才能对项目进行动画处理,例如,服务器发送新信息和列表更新,就像机场中的旧离开板一样。

3 个答案:

答案 0 :(得分:4)

使用LayoutAnimationController ....

LayoutAnimationController lac = new LayoutAnimationController(AnimationUtils.loadAnimation(getActivity(), R.anim.table_row_appear), 0.5f); //0.5f == time between appearance of listview items.
listView.setLayoutAnimation(lac);

每当你想要运行动画时:

listView.startLayoutAnimation();

答案 1 :(得分:1)

最后,由于视图重用,我最终使用了LinearLayout而不是ListView,每当它再次出现时,它会为每个视图重新运行动画。

但我这样做只是因为我没有太多的东西要展示。我想,另一种方法是在适配器中加载动画,根据项目位置计算延迟,并使用信息存储地图,视图是否已经动画化。

答案 2 :(得分:0)

您可以创建动画(转换+淡入淡出或任何其他效果)并将动画添加到您在“getView”中返回的布局(视图)

动画应考虑“position”参数,以便在动画启动时创建延迟。

享受

丹尼尔