我使用 aSlidingMenu
来显示侧抽屉(而不是标签)。现在,在 内部SlidingMenuFragment
,有ListView
6 行,每行相当于一个选项卡。当用户触摸 6 个项目之一时,内容视图应Framelayout
使用该项目的相应 Fragment 更新 。
前任:
- 猫
- 小狗
- 动物
当您选择猫时,SlidingMenu
消失并且CatsFragment
应该出现在屏幕上,替换那里的旧片段。
问题:存储将在内容视图中交换的所有片段的最佳方式是什么,同时考虑到方向变化?每次我需要交换它时实例化一个新的片段?或者实例化所有这些,将它们保存在列表中然后从那里使用它们?
我做了什么:
- 每当片段需要交换时,我都会使用下面的代码。
为了存储片段列表以便于访问,我使用了 ArrayList。我将此 ArrayList 保存在 onRetainCustomNonConfiguration() 中并在方向更改后检索它,这样我就不会实例化另一个片段列表,但我认为这不是一个好主意。
getSupportFragmentManager() .beginTransaction() .replace(R.id.activity_main_framelayout, mFragmentsList.get(mCurrentFragmentPosition)) .commit();