Android操作栏标签:每次单击该标签时,都会重新创建每个标签的内容

时间:2013-12-09 08:09:36

标签: android android-fragments tabs android-actionbar

我正在开发一个使用ActionBar导航的应用程序,我有3个标签(我不使用tabhost)如下图所示:

enter image description here

在第一个标签中,将显示名为 FragmentListItem 的片段,如果我点击Item1, FragmentListItem 将被另一个名为 FragmentItemDetails的片段替换,显示所选项目的详细信息。

我的问题是,当我选择Tab2或Tab 3,然后我再次重新选择Tab1时,我得到的不再是 FragmentItemDetail ,而是 FragmentListItem 。< / p>

那么,为什么呢?如果我想要 FragmentItemDetail 而不是 FragmentListItem ,那该怎么做?

此外,当我按下Back按钮(选择Tab1时)时,我想再次显示 FragmentListItem 。我意识到Fragment类没有onBackPressed方法可以实现。

1 个答案:

答案 0 :(得分:0)

这个问题有不同的解决方案。

一种可能的解决方案是为此标签使用自己的FragmentManager。使用FragmentsgetChildFragmentManager()方法可以实现这一点。

另一个解决方案可能是一个标志,用于识别哪个片段在Tab1上显示为最后一个。如果您知道哪个片段显示为最后一个,则可以通过使用findFragmentByTag(tag) FragmentManager方法在BackStack中搜索此片段来显示此片段。

但我建议您尝试第一个选项。如果每个选项卡都有自己的堆栈,那么BackButton的工作就会减少。