mPager.setAdapter(new MyFragmentPagerAdapter(getActivity().getSupportFragmentManager(), fragmentsList));
mPager.setCurrentItem(0);
mPager.setOnPageChangeListener(new MyOnPageChangeListener());
一般根据往常的经验,如果要传入fragmentmanager,都是红色字体部分。
但是,这样会导致一个问题:数据丢失。
在fragment切换来回时,其他单个的fragment里面的数据不会丢失,而使用了viewpager的多个fragment切换的fragment会一团漆黑。
解决办法:
将红色字体部分,用getChildFragmentManager() 替换。
mPager.setAdapter(new MyFragmentPagerAdapter(getActivity().getChildFragmentManager(), fragmentsList));
mPager.setCurrentItem(0);
mPager.setOnPageChangeListener(new MyOnPageChangeListener());
转载于:https://blog.51cto.com/bigcrab/1847251
本文介绍了一个关于使用ViewPager切换Fragment时导致的数据丢失问题及其解决方案。当使用getSupportFragmentManager()为FragmentPagerAdapter提供FragmentManager时,可能会遇到Fragment数据丢失的情况。文章提供了一种解决方法,即使用getChildFragmentManager()替代,以确保Fragment状态得以保留。

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



