解决Android viewpager+fragment刷新fragment数据集失败

相信大家都遇见过这样的需求,就是viewpager嵌套fragment的时候上边一般都有自己的标题标签栏,如果上边还有分类选择,点击选择的时候就要刷新标签栏,那么已经加载的fragment也需要重新刷新,如果直接做以下操作

fragments.clear();
fragments.add(fragment);
pagerAdapter.notifyDataSetChanged();

这样会发现数据并没有刷新,在网上找了一下,发现可能是FragmentPagerAdapter有缓存的原因,具体我也不是很清楚,还是直接说解决方法吧,其实很简单。。。使用FragmentStatePagerAdapter然后重写其getItemPosition方法:

@Override
public int getItemPosition(Object object) {
            return POSITION_NONE;
        }

返回值POSITION_NONE代表让系统重新加载
而默认的POSITION_UNCHANGED是没有改变的

这样pagerAdapter.notifyDataSetChanged();就有可以有效的刷新数据了

你可能感兴趣的:(解决Android viewpager+fragment刷新fragment数据集失败)