首页 文章

Android ListView / Gallery布局动画

提问于
浏览
0

我正在使用gallery小部件 . 我附加了布局动画,它在画廊中的元素中淡入淡出 . 它运作良好 .

但是当我改变gallery的内容时,用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!

1 回答

  • 2

    文档“定义第一次布置ViewGroup时使用的布局动画”中描述的布局动画 . 因此,只有在您第一次显示视图时才会使用此选项 .

    我最近做了类似的事情,我不知道它是否是最好的解决方案,但是当系统调用getView方法时你可以在适配器中启动动画 . 重要的是不要在getView方法中创建动画对象,而是在适配器构造函数中创建一次,然后为要显示所需动画的视图重用相同的动画 .

    如果您只想在新视图上显示动画,而不是创建一个标志,该标志将指示视图是否第一次显示,并使用视图ID将视图与正确的标志相关联 .

    如果要控制何时触发动画,请在视图上使用setAnimation方法,而不是startAnimation . 如果要创建视图逐渐显示在屏幕上的效果,这将非常有用 .

相关问题