我在MainActivity中管理了两个片段。
其中一个是ListFragment的子类,用于显示项目列表。
主要思想是当用户点击其中一个项目时导航到另一个列表视图,用户可以在点击后退按钮时返回上一个列表视图。
传输到新列表的代码如下所示:
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
NewFragment newFragment = new NewFragment();
newFragment.setArguments(getIntent().getExtras());
transaction.replace(R.id.fragment_layout, newFragment);
transaction.addToBackStack(null);
transaction.commit();
但是,我只是退出应用程序,而不是回到上一个视图。 我做错了什么?
答案 0 :(得分:0)
与活动不同,对于片段,您必须将内容显式添加到“后台”。基本上,当你的应用程序显示一个新的片段,你想要返回到预览片段时,你可以调用FragmentTrasaction.addToBackStack()
。
框架处理当用户按下时从后台堆栈中弹出片段。如果您需要更复杂的东西,可以覆盖片段的后退按钮。这个问题涵盖了这一点,
答案 1 :(得分:-2)
后退按钮关闭顶部活动,但不会导航到碎片历史记录中。您必须自己使用popBackStack()
执行此操作