【发布时间】:2013-03-12 19:38:03
【问题描述】:
我真的搞砸了 android ViewPager 的生命周期,我开始认为我的应用程序的结构有问题。因此,如果我可以执行以下操作,我想确认一下:
- 我有一个显示一些选项卡的应用程序。其中一个选项卡显示了一个 ViewPager,其中有两个 ListFragment。那些 ListFragments 在 ViewPager 的 onCreate 事件中创建。
- 当您单击其中一个 ListFragments 中的项目时,它会将整个 ViewPagerFragment 替换为不同的片段(这是另一个 ListFrament)。
这是我用新的 ListFragment 替换 ViewPager 的代码
FragmentManager fm = getFragmentManager();
android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.container, new RequestForm(requestsList.get(itemIndex)));
ft.addToBackStack(null);
ft.commit();
从那里开始,一切正常。但是,如果用户点击后退按钮,我会得到以下情况:
- ViewPager 重新加载正常(来自 onCreateView),但 ListFragment 里面不会出现。看起来我的 ListFragment 的对象还在 活着,但似乎他们失去了视野,而 onCreateView 不是 调用以重新创建它(因为对象在 ViewPager 已退出)。
我暂时不在这里发布更多代码,因为我的目的是了解我正在尝试做的事情是否符合 Android 的思维方式。我是否必须与Android SDK对抗才能归档我想做的事情?
【问题讨论】:
标签: android android-fragments android-viewpager android-listfragment android-nested-fragment