我一直在努力找出哪些片段内的正确管理FragmentActivity用ViewPager的.在我详细介绍之前,我面临的问题的快速摘要如下:
我有FragmentActivity一个ViewPager.在ViewPager使用自定义的,但非常简单FragmentPagerAdapter.每个Fragment所述内ViewPager的包括ExpandableListView.我还有一个名为"刷新"的操作栏按钮.现在,我们假设ViewPager只有一个Fragment.创建活动,并填充Fragment's' ExpandableListView(迄今为止很好).单击"刷新"按钮时,FragmentActivity迭代在其列表中的处理方法Fragments将分配给FragmentPagerAdapter,并refresh()在每个Fragment上调用以填充其ListView.但是,当设备的方向发生变化时(例如,从纵向到横向),将重新创建活动,片段也是如此.现在单击"刷新"按钮将迭代未初始化Fragments.
我知道我很模糊,特别是没有示例代码,但请耐心等待.我从应用程序/活动的开头跟踪了问题和方法调用:
FragmentActivity.onCreate()FragmentActivity.setContentView()FragmentActivity.createPagerFragments() < - 这将创建一个Fragments的ArrayList,并将它们分配给一个新的FragmentPagerAdapter,而FragmentPagerAdapter又分配给ViewPager.Fragment.onAttach()Fragment.onCreate() < - 这里没什么特别的,只是调用super方法.Fragment.onCreateView() < - 这里没什么特别的,只是给布局充气Fragment.onActivityCreated() < - 这里也没什么.FragmentActivity.onCreate()Fragment.onAttach()Fragment.onCreate()FragmentActivity.setContentView()FragmentActivity.createPagerFragments()Fragment.onCreateView()Fragment.onActivityCreated()FragmentActivity.refresh() < - 迭代来自#13的新创建的碎片(不是Android的这些!).所以问题,正如我所看到的,如下所示:当Android 在屏幕方向改变后重新创建FragmentActivity它时Views(上面调用#9-15),它会创建新Fragment对象,其状态恢复到原始对象的状态.然而,这些似乎完全由 …
android android-fragments android-viewpager android-fragmentactivity