【发布时间】:2014-11-09 09:10:03
【问题描述】:
我有一个 Activity(扩展 FragmentActivity)。在 Activity 的 onCreate 中我动态创建 Fragment。在 Fragment 的 onCreate 中我设置了 setRetainInstance(true)。我还调用 AsyncTask.execute() 从外部服务器加载一些列表。 AsyncTask 的 onPostExecute() 我称之为 -
mAdapter = new MyAdapter(getChildFragmentManager());
mPager.setAdapter(mAdapter);
ViewPager 中的项目数量是以这种方式创建的——我将整个列表划分为每个 10 个项目的小列表,并制作这些列表的列表片段并分配给寻呼机。
现在,当我旋转屏幕时,我的设备没有崩溃,只是屏幕完全变白。我记录了日志,发现旋转屏幕后没有调用 getItem() 和 getcount()。我正在使用 FragmentStatePagerAdapter。
我在SO上寻找解决方案,但找不到合适的解决方案。旋转屏幕后如何保留viewpager片段?
【问题讨论】:
-
在重新实例化
Activity后,您需要在ViewPager上设置适配器类的实例。 -
我在 Fragment 的 onActivityCreated 方法中执行此操作,但屏幕旋转应用程序崩溃
-
哦,所以你的
ViewPager在你保留的Fragment里面?这可能会产生一些影响。无论如何,发布您的崩溃日志可能会对此事有所帮助。 -
@corsair992 - 我在 android.support.v4.app.FragmentManagerImpl.getFragment(FragmentManager.java:579) 遇到空指针异常
-
@corsair992 - 我按照你的要求在 viewpager 上设置了一个适配器类的实例,但我得到了 Null Pointer 异常。
标签: android android-fragments android-viewpager