调用setAdapter时,ViewPager并不总是刷新,FragmentStatePagerAdapter

Cha*_*hao 7 android adapter android-viewpager

首先,我使用FragmentStatePagerAdapter为ViewPager提供要显示的片段.

当app处于运行状态(即之后onResume())时,在ViewPager上调用setAdapter将始终工作并使我的ViewPager刷新,getItem(int position)调用适配器中的方法.

但是在方向更改后,如果我在onCreate(Bundle savedInstance)我的activity 的方法中调用setAdapter,getItem(int position)则不会调用该方法,并且会重用旧的片段.

我想也许FragmentManager正在做一些我不明白的事情?片段管理器是在方向更改期间唯一不会被破坏的东西.

谢谢

fah*_*hmy 23

这可能是因为您getFragmentManager()在使用嵌套片段时使用实例化FragmentStatePagerAdapter.

请尝试使用getChildFragmentManager():

CustomFragmentPagerAdapter fragmentPagerAdapter = new CustomFragmentPagerAdapter(getChildFragmentManager());
Run Code Online (Sandbox Code Playgroud)

这里找到答案.