在单个活动中管理多个碎片的理想方法是什么?

时间:2015-07-21 11:17:08

标签: java android android-fragments

我有一个Activity,让我们说MainActivity。 在MainActivity的onCreate中,我正在加载FragmentOne。 FragmentOne有一个ListView,在点击某个项目时,会在FragmentTwo中加载MainActivity。 现在我的问题是,当MainActivity显示FragmentTwo并且onCreate MainActivity被调用时,比如更改方向后,等MainActivity再次加载FragmentOne {1}}。 同一流程中的另一个问题是OptionsMenu,每次创建Fragment时,它都会多次附加菜单。现在我保持一面旗帜,并在savedInstance的帮助下。还有其他办法吗?

请注意,我正在开发sdk ,因此我希望在Activity 中使用最少量的代码。

提前致谢。

2 个答案:

答案 0 :(得分:0)

检查Fragment.setRetainInstance(boolean):

  

public void setRetainInstance(boolean retain)

     

控制是否在活动重新创建期间保留片段实例   (例如从配置更改)。这只能用于后堆栈中不具有>的片段。如果设置,则片段生命周期将略有不同>重新创建活动时:

     

onDestroy()将不会被调用(但onDetach()仍然会被调用,因为>片段正在与其当前活动分离。   因为片段没有被重新创建,所以不会调用onCreate(Bundle)。   仍将调用onAttach(Activity)和onActivityCreated(Bundle)。

答案 1 :(得分:0)

我在单个活动中为多个片段创建了demo。 MultiFragment

很容易使用,您必须传递要将片段放在getContentId中的布局ID。

现在,只要您想在活动或片段中加载片段,只需致电loadFragmentloadFragmentForResult