更换ViewPager中的Adapter后Fragment不更新问题
2016-11-17 09:14
661 查看
由于开发中ViewPager的Adapter数据是通过网络获取,并且会动态更改,这个时候以为像Listview一样用
[java] view plain copy if (vp_pager.getAdapter() != null) {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
List<Fragment> fragments = fm.getFragments();
if(fragments != null && fragments.size() >0){
for (int i = 0; i < fragments.size(); i++) {
ft.remove(fragments.get(i));
}
}
// Bundle bundle = new Bundle();
// int index = vp_pager.getAdapter().getCount();
// String key = "index";
// for (int i = 0; i < index; i++) {
// bundle.putInt(key, i);
// ft.remove(fm.getFragment(bundle, key));
// }
ft.commit();
}
最后可以完美更新数据源了
Adapter.notifyDataSetChanged()来更新数据,发现viewpager对应的Fragment没有任何变化,
于是上网查询资料,得出是viewPager的缓存导致,后面得到一段处理方法
if (vp_pager.getAdapter() != null) { FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); Bundle bundle = new Bundle(); int index = vp_pager.getAdapter().getCount(); String key = "index"; for (int i = 0; i < index; i++) { bundle.putInt(key, i); ft.remove(fm.getFragment(bundle, key)); } ft.commit(); }
结果可以及时更新,但是有另外一个问题,多切换数据就出现了
[android-developers] java.lang.IllegalStateException: Fragement no longer exists for key f1: index 3
错误,经过研究后,自己重新更改了写法[java] view plain copy if (vp_pager.getAdapter() != null) {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
List<Fragment> fragments = fm.getFragments();
if(fragments != null && fragments.size() >0){
for (int i = 0; i < fragments.size(); i++) {
ft.remove(fragments.get(i));
}
}
// Bundle bundle = new Bundle();
// int index = vp_pager.getAdapter().getCount();
// String key = "index";
// for (int i = 0; i < index; i++) {
// bundle.putInt(key, i);
// ft.remove(fm.getFragment(bundle, key));
// }
ft.commit();
}
最后可以完美更新数据源了
相关文章推荐
- ViewPager更新问题 - PagerAdapter 和 FragmentPagerAdapter
- Android-ViewPager+Fragment数据更新问题
- viewpager + fragmentpageradapter 切换fragment产生的问题
- Viewpager+fragment数据更新问题解析
- ViewPager+Fragment使用过程中手动清除及更新Fragment遇到的问题
- Android-ViewPager+Fragment数据更新问题
- Fragment+ViewPager动态更新问题
- Viewpager+fragment数据更新问题
- 解决Android开发中ViewPager动态设置PagerAdapter时第二次进入Fragment内容不显示的问题
- ViewPager+Fragment+FragmentPagerAdapter,更新页面注意事项
- Android ViewPager的FragmentPagerAdapter中Fragment不重新加载数据,并且使用的是其他缓存的Framgnet的问题
- ViewPager + FragmentPagerAdapter 实现底Tab的预加载问题。
- Android-ViewPager+Fragment数据更新问题
- FragmentStatePagerAdapter 无法更新问题
- 笔记:ViewPager+FragmentPagerAdapter数据刷新问题
- Tab总结及完美解决FragmentPagerAdapter保存数据更新问题
- 使用Fragment作为Item的ViewPager不更新问题.
- viewpager动态更新数据重新setAdapter(FragmentPagerAdapter)不起作用
- FragmentPagerAdapter与FragmentStatePagerAdapter的区别+ViewPager数据刷新问题详解
- Android ViewPaper使用FragmentPagerAdapter出现的FragmentManagerImpl为空的问题