当我想返回上一个片段时,后退按钮不起作用

时间:2013-01-22 19:54:30

标签: android android-fragments android-listfragment android-fragmentactivity

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

但是,我只是退出应用程序,而不是回到上一个视图。 我做错了什么?

2 个答案:

答案 0 :(得分:0)

与活动不同,对于片段,您必须将内容显式添加到“后台”。基本上,当你的应用程序显示一个新的片段,你想要返回到预览片段时,你可以调用FragmentTrasaction.addToBackStack()

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

  

Android Fragment handle back button press

答案 1 :(得分:-2)

后退按钮关闭顶部活动,但不会导航到碎片历史记录中。您必须自己使用popBackStack()

执行此操作