我正在开发一个使用ActionBar导航的应用程序,我有3个标签(我不使用tabhost)如下图所示:
在第一个标签中,将显示名为 FragmentListItem 的片段,如果我点击Item1, FragmentListItem 将被另一个名为 FragmentItemDetails的片段替换,显示所选项目的详细信息。
我的问题是,当我选择Tab2或Tab 3,然后我再次重新选择Tab1时,我得到的不再是 FragmentItemDetail ,而是 FragmentListItem 。< / p>
那么,为什么呢?如果我想要 FragmentItemDetail 而不是 FragmentListItem ,那该怎么做?
此外,当我按下Back按钮(选择Tab1时)时,我想再次显示 FragmentListItem 。我意识到Fragment
类没有onBackPressed
方法可以实现。
答案 0 :(得分:0)
这个问题有不同的解决方案。
一种可能的解决方案是为此标签使用自己的FragmentManager
。使用Fragments的getChildFragmentManager()
方法可以实现这一点。
另一个解决方案可能是一个标志,用于识别哪个片段在Tab1上显示为最后一个。如果您知道哪个片段显示为最后一个,则可以通过使用findFragmentByTag(tag)
FragmentManager方法在BackStack中搜索此片段来显示此片段。
但我建议您尝试第一个选项。如果每个选项卡都有自己的堆栈,那么BackButton的工作就会减少。