问题描述
删除ViewPager对应的数据对象集合中部分数据后,已调用notifyDataSetChanged,但是UI未更新.
原因PagerAdapter中getItemPosition默认返回的是POSITION_UNCHANGED,表示数据位置未变化,这样UI就不会更新了.
public int getItemPosition(@NonNull Object object) {
return POSITION_UNCHANGED;
}
解决方案
- 如果是小数据量,可以采用下面方案,全量刷新UI. 实现PagerAdapter时,覆写getItemPosition
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
- 如果数据量较大,则参考PagerAdapter数据刷新问题中第二种方案
PagerAdapter数据刷新问题 Viewpager删除item(数据源发生改变)没有即时更新