我正在使用画廊小工具。我已经附加了在画廊中淡入元素的布局动画。它工作得很好。
但是当我改变图库的内容,并用notifyDataSetChanged()刷新适配器时,新的元素会出现,但它们没有布局动画。
如何实现这种效果?我经常更新图库内容,每次我都需要这样的效果。
下面是一个代码:
<com.rtrk.gui.mainmenu.gallery.A4TVGallery
android:id="@+id/mainMenuGallery"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:layoutAnimation="@anim/a4tv_gallery_controller"
android:persistentDrawingCache="animation" />
// Notify new data
mainMenuAdapter.notifyDataSetChanged();
// Set default selection
mainMenuGallery.setSelection(defaultSelectedIndex);TNX!
发布于 2012-08-19 00:32:43
文档中描述的布局动画“定义了第一次布局ViewGroup时要使用的布局动画”。因此,这仅在第一次显示视图时使用。
我最近做了一些类似的事情,我不知道这是否是最好的解决方案,但您可以在系统调用getView方法时在适配器中启动动画。重要的不是在getView方法中创建动画对象,而是在适配器构造函数中只创建一次,然后将相同的动画重用于您希望用所需动画显示的视图。
如果您希望仅在新视图上显示动画,请创建一个标志,表示该视图是否已首次显示,并使用视图ID将该视图与正确的标志相关联。
如果您想要控制何时触发动画,请在视图上使用setAnimation方法,而不是startAnimation。如果要创建视图逐渐显示在屏幕上的效果,则此选项非常有用。
https://stackoverflow.com/questions/12019942
复制相似问题