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

标签 android adapter android-viewpager

首先,我使用 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/

相关文章:

c# - C# 中的双向适配器和可插拔适配器模式有什么区别?

android - 带光标的 ListActivity

java - 如何在 Android Studio 中向 AndroidManifest.xml 文件添加类?

android - ListView 中的性能缓慢

java - 如何初始化在 Activity 中定义的界面,该界面是通过 TabLayout 使用 ViewPager 设置的 3 个 fragment 实现的?

android - ViewPager 内的 ScrollView

Android:抽屉导航 fragment 内的Viewpager

android - 如何将消息从 Intent Service 发送到 Activity

android - 适配器类中的 super.onActivityResult?安卓

android - 通过 adb shell/Tasker 关闭第二个 SIM - 使用 Activity/Intent