我正在尝试实现 Gmail 应用程序 (ICS) 在删除邮件时提供的功能。我不想删除单元格下方的所有行都向上移动并覆盖已删除的单元格。
这是工作动画:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<translate android:fromYDelta="0%" android:toYDelta="-100%"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
到目前为止,我想出的是:
public static List<View> getCellsBelow(ListView listView, int position) {
List<View> cells = new ArrayList<View>();
for (int i = position + 1; i <= listView.getLastVisiblePosition(); i++) {
cells.add(listView.getChildAt(i));
}
return cells;
}
我在所选单元格下方收集可见单元格,然后在 foreach 中为它们设置动画。我担心这是性能灾难。我也很难通知适配器它应该重新加载它的内容。通常我会打电话notifyDataSetChanged
,onAnimationEnd
但现在有几个动画一个接一个地播放。
有什么建议吗?也许有一些东西可以刺激地为几个视图设置动画?