【发布时间】:2013-09-13 20:02:18
【问题描述】:
在我的主要活动中,我有一个带有NAVIGATION_MODE_TABS 的操作栏。每个选项卡的内容都是一个列表片段。
我想让它在单击列表项时显示一个新片段,并且操作栏模式更改为NAVIGATION_MODE_STANDARD(以便现在隐藏选项卡)。
我已经设法让它与以下代码一起工作:
在 listitemclick 方法中:
ActionBar actionBar = getActivity().getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
Fragment albumListFragment = new AlbumListFragment();
albumListFragment.setArguments(bundle);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(android.R.id.content, albumListFragment);
ft.addToBackStack(null);
// Commit the transaction
ft.commit();
Log.i("FragmentList", "Item clicked: " + id);
问题是当我按下后退按钮时,选项卡仍然消失,并且之前的片段没有重新出现。
我是不是做错了什么......它与片段后台堆栈有关吗?我应该以另一种方式去做,甚至覆盖后压吗?
--编辑--
为了清楚起见 - 我在调用 fragmenttransaction.replace 时调用了 addToBackStack,但是当我按下后退按钮时,前一个片段没有恢复。
【问题讨论】:
-
谢谢,但对这个问题不是特别有帮助..
-
使用 addToBackStack 是你想要的。 developer.android.com/guide/components/…
-
代替
ft.addToBackStack(null);可以试试ft.addToBackStack("fragment_tag");吗?
标签: android android-fragments android-actionbar