我有一个带有两个片段的应用。当我点击第一个列表中的项目时,应用程序会使用以下代码加载第二个片段:
FragmentTransaction transaction = getFragmentManager().beginTransaction()
transaction.replace(R.id.fragment_container, editFragment);
transaction.addToBackStack(null);
transaction.commit();
有效。但是,当我点按后退按钮时,应用程序似乎关闭但是它仍在运行,它只是将我转发回设备的主屏幕。我想用popBackStack()来返回但是我发现在上面显示的代码之后,后面的堆栈条目数仍然是0,所以看起来addToBackStack不会向后堆栈添加任何东西。
之前我已经成功地在其他应用上使用过此功能,但我看不出这个和其他应用之间存在任何差异,尽管显然存在一些差异。
如果有人能给我一个提示,我真的很感激。
谢谢,
罗斯
答案 0 :(得分:0)
如果您通过调用add()
后跟addToBackStack()
添加第一个片段,您将获得您描述的行为。请检查您是否正在拨打addToBackStack()
两次。