【发布时间】:2012-12-08 12:38:22
【问题描述】:
我正在尝试为 ListView 添加动画我正在使用 getView() 在列表中绘制一些视图。一切正常。
public View getView(int position, View convertView, ViewGroup parent) { }
我正在尝试在用户单击列表单元格时添加动画,然后所有列表单元格都应该向左滑动并且新数据应该同时来自右侧,这意味着单元格数据正在向左移动,同时新数据来自右侧。
我在 OnItemClickListener 中实现了以下代码
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Animation slideOutAnimation=AnimationUtils.loadAnimation(this, R.anim.slide_out);
slideOutAnimation.setDuration(900);
Animation slideInAnimation=AnimationUtils.loadAnimation(this, R.anim.slide_in);
slideInAnimation.setDuration(500);
listView.startAnimation(slideOutAnimation);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
data = newData();
listView.startAnimation(slideInAnimation);
myAdapterClass.notifyDataSetChanged();
}
}, slideOutAnimation.getDuration());
}
};
上面的代码正在运行,但没有得到期望的输出我在更改动画时得到一个空视图。
左滑动画开始---空视图----右滑动画开始
不明白为什么会出现空视图(暂时显示空屏幕),我玩过动画时间和处理程序,但没有运气。
如何删除那个空视图?如何实现这个输出?
左滑动动画开始(数据移动)(同时数据来自右)右滑动动画开始
【问题讨论】:
-
我已尝试使用以下代码 slideOutAnimation.setAnimationListener(new Animation.AnimationListener(){ public void onAnimationStart(Animation arg0) {data = newData(); listView.startAnimation(slideInAnimation); myAdapterClass.notifyDataSetChanged( ); } public void onAnimationRepeat(Animation arg0) { } public void onAnimationEnd(Animation arg0) { } });它不起作用,它只显示向左滑动,单元格文本消失,没有任何动画,左侧动画开始。
标签: android android-layout android-listview android-animation android-listfragment