2

我使用 aSlidingMenu来显示侧抽屉(而不是标签)。现在,在 内部SlidingMenuFragment,有ListView6 行,每行相当于一个选项卡。当用户触摸 6 个项目之一时,内容视图应Framelayout使用该项目的相应 Fragment 更新 。

前任:

  1. 小狗
  2. 动物

当您选择猫时,SlidingMenu消失并且CatsFragment应该出现在屏幕上,替换那里的旧片段。

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

我做了什么:

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

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

1 回答 1

1

确实,这是官方的做法。

http://developer.android.com/training/implementing-navigation/nav-drawer.html#ListItemClicks

于 2013-05-16T09:39:11.460 回答