最近项目中要用到在ViewPage中删除页面,研究了两天,网上寻找了各种解决方法,最终找到了,总结归纳就是:
一:在适配器中重写getItemPosition方法
二:在适配器中重写destroyItem方法
在PagerAdapter的getItemPosition中默认总是返回 POSITION_UNCHANGED,代表数据没有改变,因为我们删除了页面,所有要重写此方法返回 POSITION_NONE,代表适配器已经不存在这个item了。下面是getItemPosition的源码分析截图。大伙可以看看什么意思
所以重写这个方法就是
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
查看PagerAdapter中destroyItem的方法,如下图