首先,我使用 FragmentStatePagerAdapter 为 ViewPager 提供要显示的 fragment 。
当应用程序处于运行状态时(即在 onResume()
之后),调用 ViewPager 上的 setAdapter 将始终有效并使我的 ViewPager 刷新,getItem(int position)调用适配器中的
方法。
但是在方向改变后,如果我在 Activity 的 onCreate(Bundle savedInstance)
方法中调用 setAdapter,则不会调用 getItem(int position)
方法,旧 fragment 被重用。
我在想,也许 FragmentManager 正在做一些我不明白的事情? fragment 管理器是唯一在方向更改期间不会被破坏的东西。
谢谢
最佳答案
这可能是因为您在使用嵌套 fragment 时使用 getFragmentManager()
来实例化 FragmentStatePagerAdapter。
尝试使用 getChildFragmentManager()
代替:
CustomFragmentPagerAdapter fragmentPagerAdapter = new CustomFragmentPagerAdapter(getChildFragmentManager());
已找到答案 here .
关于android - 调用 setAdapter 时 ViewPager 并不总是刷新,FragmentStatePagerAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13557153/