【问题标题】:Does it make sense to recycle views in a pager with grid views?在具有网格视图的寻呼机中回收视图是否有意义?
【发布时间】:2012-07-14 02:17:12
【问题描述】:

我想知道在这种情况下使用回收功能是否有意义:ViewPager,其中每个页面都是一个带有 GridView 的片段,它适合页面(所有项目都是可见的,没有滚动)。

问题的原因是我想在 2 个不同(相似)的 XML 之间切换以膨胀网格视图中的项目。而且,使用回收,这可能是不可能的。但我认为在这种情况下不需要回收。

编辑:为了清楚起见,我的意思是回收网格项目。有关视图寻呼机的信息只是给出使用它们的上下文。对于回收,我的意思是在方法 getView 中使用 convertView 进行回收。 if (convertView) == null {inflate}

【问题讨论】:

    标签: android gridview recycle


    【解决方案1】:

    使用 ViewPager 时,您实现了 PagerAdapter。在这种情况下,由于您想使用片段,您将扩展 FragmentStatePagerAdapter。我将实现抽象的方法(尽管查看 FragmentStatePagerAdapter 的源代码,可能还有一些方法需要重写,因为不受支持的异常,如 destroyItem)并将其保留。让 PagerAdapter 担心回收视图,这是它的工作。

    除非存在性能问题(例如您在每个页面中加载大量图像),否则我不会考虑自己回收视图。如果您确实达到了这一点,您还需要考虑 destroyItem() 会起作用。

    【讨论】:

    • 我指的是每个页面中使用的网格视图中的视图。
    • 除非视图中的内容相同,否则我仍然不会回收视图。如果您回收视图,并根据适配器中的位置更改内容,当您开始滑动寻呼机时,您会看到重复的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多