我有一个带有操作栏和操作栏标签的活动。当我从选项卡的内容中选择一个项目时,我正在尝试用新的替换当前片段,将事务添加到后台堆栈,并隐藏选项卡。
我通过将操作栏导航模式更改为标准来隐藏选项卡。
问题在于,当我按下后退按钮时,我只是使用操作栏获得一个空白视图(在标准模式下)..片段事务似乎没有被反转。
如果我不通过将导航模式更改为标准来隐藏选项卡,则事务撤销工作正常..
我已尝试覆盖背面按下以将导航模式更改回标签,但它不起作用。
有人能告诉我他们将如何实现这一目标吗?
以下是隐藏选项卡并执行片段事务的代码:
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();
为了清楚起见:我希望在提交此事务后按回来,标签将返回到前一个片段的视图。在按下后,它没有显示标签或片段。
答案 0 :(得分:8)
不确定这个问题是否仍然相关,但在片段转换后我似乎很幸运地隐藏了标签。
从我的ListFragment中,我做了一个非常类似于你在代码中执行它的标准片段转换。
但是,在我的详细信息片段中,我隐藏了onCreate方法中的操作栏:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar actionBar = getActivity().getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
}
并在我的onPause方法中再次显示:
public void onPause() {
super.onPause();
ActionBar actionBar = getActivity().getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
}