【问题标题】:ViewPager: override getItemPosition(Object object) methodViewPager:覆盖 getItemPosition(Object object) 方法
【发布时间】:2013-09-15 08:54:59
【问题描述】:

在 android 开发者博客上我读过这个:

如果您尝试替换 ViewPager 中的视图,仅更改适配器后面的数据集并调用 notifyDataSetChanged() 是不够的。您还需要确保您已正确实现 getItemPosition(Object object) 并为已更改的项目返回 POSITION_NONE 并为未更改的项目返回 POSITION_UNCHANGED 或实际位置。

“替换视图”是什么意思?因此,如果我有例如 ViewPager 的片段包含一个 ArrayAdapter 并且我附加了新数据,我需要在片段中调用 notifyDataSetChanged() 并使用 getItemPosition() 在 ViewPager 中捕获它? 如果我不这样做有什么问题?

【问题讨论】:

    标签: android android-fragments android-viewpager


    【解决方案1】:

    如果您修改 viewpager 的数据集,它还想知道片段或视图是否与以前的顺序相同。你这样做会覆盖 getItemPosition(obj)。

    如果你不这样做,viewpager 将不知道新的视图顺序,所以它可能会搞砸。

    【讨论】:

    • 在我的用例中,片段始终保持相同的位置和顺序。它仅更改其中的数据。所以我不需要调用这两个方法?
    • 我的情况和你一模一样,没有重写方法,一切正常。仅当您想更改片段的顺序时才需要它。
    猜你喜欢
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多