问题描述:
在使用ViewPager
的适配器删除适配器里一个Item
后依然会,而删除的这个item
依然会保留缓存,适配器不会重新加载更新数据.如下代码:
public class CardPagerAdapter extends PagerAdapter {
private List<TReleaseCircleBase.Pic> mImageUrlList = new ArrayList<>();
public void removeItem(int position){
mImageUrlList.remove(position);
notifyDataSetChanged();
}
//....略
在这个代码里removeItem(int position)
是希望清理适配器List里的一项item
,并且重新刷新.但是其实真实情况是并不会重新刷新… 在滑动超过3个页面后才会让你那个删除item
消失.
解决办法:
依然在这个适配器里重写public int getItemPosition(@NonNull Object object)
方法
public class CardPagerAdapter extends PagerAdapter {
private List<TReleaseCircleBase.Pic> mImageUrlList = new ArrayList<>();
public void removeItem(int position){
mImageUrlList.remove(position);
notifyDataSetChanged();
}
@Override
public int getItemPosition(@NonNull Object object) {
// return super.getItemPosition(object);
return POSITION_NONE;
}
注意关键点是返回 POSITION_NONE