安卓开发安卓开发Android开发经验谈

ViewPager删除数据后UI未更新

2019-08-07  本文已影响5人  蓝不蓝编程

问题描述

删除ViewPager对应的数据对象集合中部分数据后,已调用notifyDataSetChanged,但是UI未更新.

原因

PagerAdapter中getItemPosition默认返回的是POSITION_UNCHANGED,表示数据位置未变化,这样UI就不会更新了.

    public int getItemPosition(@NonNull Object object) {
        return POSITION_UNCHANGED;
    }

解决方案

  1. 如果是小数据量,可以采用下面方案,全量刷新UI.
    实现PagerAdapter时,覆写getItemPosition
@Override
    public int getItemPosition(Object object) {
        return POSITION_NONE;
    }
  1. 如果数据量较大,则参考PagerAdapter数据刷新问题中第二种方案

参考资料

PagerAdapter数据刷新问题
Viewpager删除item(数据源发生改变)没有即时更新

上一篇 下一篇

猜你喜欢

热点阅读