恢复嵌套的片段数据android

时间:2017-01-11 04:38:39

标签: android android-fragments

我有一个Android app结构如下

Activity -> Fragment -> FragmentViewPager with 3 fragments

(Generic Activity)
(Generic Fragment for purpose of resuability)
(Generic Fragment hosts a view pager with 3 fragments, 
each of these fragments has some list view and random other stuff)

目前,在onViewChanged(我使用android注释,所以下面的代码在@AfterView的方法中运行)的Acitivity,我做

Fragment genericFragment = FragmentBuilder().build();
getSupportFragmentManager().beginTransaction().add(genericFragment);

添加通用片段。

在GenericFragment的onViewChanged()中,我设置了嵌套片段和viewPagers。

Fragment f1 = FragmentBuilder().build();
Fragment f2 = FragmentBuilder().build();
Fragment f3 = FragmentBuilder().build();

viewPager.setAdapter(new FragmentViewPager(getChildFragmentManager()) {
    // return f1, f2, f3 in getItem();
});

我注意到的第一个问题是当GenericActivity被杀死时(通过不保持活动),下次加载时,似乎fragmentManager中已经存在genericFragment。 (FragmentManager.getFragments()返回一个列表。

问题1:恢复单个片段(在这种情况下是通用片段)的正确方法是什么?我可以找到旧片段。但是我能做些什么呢?或者我只是使用新的GenericFragment调用... beginTransation().replace()?新的GenericFragment仍然可以收到旧数据吗?

问题2:由于我的嵌套片段包含列表和内容,因此我想跟踪用户加载的内容以及用户所在的页面。我理解如何调用viewPager来获取这些信息,但是为这些嵌套片段存储/恢复这些数据的正确方法是什么?

0 个答案:

没有答案