在方向更改时处理多个可交换片段的最佳方法

时间:2013-02-04 21:56:44

标签: android android-fragments android-fragmentactivity android-sliding

我使用SlidingMenu来显示侧面抽屉(而不是标签)。现在,在SlidingMenuFragment内,有一个ListView有6行,每行都相当于一个标签。 当用户触摸6个项目中的一个时,内容视图应使用该项目的相应片段更新Framelayout

例如:

  1. 动物
  2. 选择猫时,SlidingMenu消失,CatsFragment应显示在屏幕上,替换那里的旧片段。

    问题:考虑到方向更改,存储要与内容视图交换的所有片段的最佳方法是什么? 每次我需要交换它时实例化一个新的片段?或者实例化所有这些,将它们保存在列表中然后从那里使用它们?

    我做了什么:

    1. 每当片段需要交换时,我都会使用下面的代码。
    2. 要存储片段列表以便于访问,我使用ArrayList。我将此ArrayList保存在onRetainCustomNonConfiguration()中并在方向更改后检索它,这样我就不会实例化另一个片段列表,但我不相信这是个好主意。

          getSupportFragmentManager()
          .beginTransaction()
          .replace(R.id.activity_main_framelayout, mFragmentsList.get(mCurrentFragmentPosition))
          .commit();
      

1 个答案:

答案 0 :(得分:1)

相关问题