3

我在 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();

但是,我只是简单地退出应用程序,而不是返回上一个视图。我究竟做错了什么?

4

2 回答 2

0

与活动不同,对于片段,您必须明确地将内容添加到“后堆栈”中。基本上,当您的应用程序显示一个新片段以便您返回预览片段时,您调用FragmentTrasaction.addToBackStack().

当用户按下返回时,框架会处理将片段从返回堆栈中弹出。如果您需要更复杂的东西,您可以覆盖片段的后退按钮。这个问题涵盖了,

Android Fragment 手柄后退按钮按下

于 2013-01-22T20:01:04.497 回答
-2

后退按钮关闭顶部 Activity,并且不会在 Fragment 历史记录中导航回来。您必须自己使用popBackStack()

于 2013-01-22T19:59:32.813 回答