解決ViewPager FragmentPagerAdapter不重新整理問題
阿新 • • 發佈:2018-11-13
ViewPager+FragmentPagerAdapter使用時發現notifyDataSetChanged()方法不起作用,檢視FragmentPagerAdapter原始碼發現中
FragmentPagerAdapter中的Fragment是從FragmentManager中根據tag取的。如果FragmentManager中有相應的Fragment就會複用。也就導致了ViewPager不重新整理的問題
解決方案:在重新整理之前將FragmentManager中的Fragment清除一下
public void setFragments(ArrayList fragments) { if(this.fragments != null){ FragmentTransaction ft = fm.beginTransaction(); for(Fragment f:this.fragments){ ft.remove(f); } ft.commit(); ft=null; fm.executePendingTransactions(); } this.fragments = fragments; notifyDataSetChanged(); }