背景
项目中用到Viewpager+FragmentPagerAdapter管理若干Fragment,我的fragments是根据服务返回的json动态生成的,当我的fragments发生变化时,本想通过
fragments.clear();//清除旧的fragment
fragments.add(……);//添加新的
FragmentPagerAdapter.notifyDataSetChanged
来替换原来的fragments,但是结果是,并无反应,还是原来的fragments。
网上关于这一块,解决方案很多,特别是说在FragmentPagerAdapter中重写getItemPosition强制返回POSITION_NONE的:
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
这些我都已经处理过了,但是还是会出现这种情况。
根据以往的经验,还是看一

当使用FragmentPagerAdapter时,动态更改数据并调用notifyDataSetChanged()可能会遇到无响应的情况。这是因为ViewPager会缓存Fragment,即使数据改变,仍可能显示旧的Fragment。解决办法是在PagerAdapter中清除Fragment缓存,例如在AppCompatActivity的onResume()方法中执行清理操作,从而确保显示最新的内容。深入理解源码有助于找出这类问题的根源。

1754

被折叠的 条评论
为什么被折叠?



