【问题标题】:How to go back to a previous fragment on click of phone's back button? [duplicate]单击手机的后退按钮如何返回上一个片段? [复制]
【发布时间】:2016-06-01 13:19:55
【问题描述】:

我的应用程序中有 2 个活动:

1.Launch_activity 显示一些细节

2.Home_activity,其中包含多个片段,例如 A1、A2、A3 列为卡片

我的问题是: 如何返回到上一个片段。示例:如果我在片段 A2 中,当我按下返回时,它应该返回到 A1,当我从 A1 按下返回时,它应该转到 Home_activity,我的所有片段都显示为卡片。目前,当我按下后退按钮时,它直接进入 Launch_activity。由于我是新来的,你能解释一下如何解决这个问题吗?

【问题讨论】:

  • 更改片段时,只需添加addToBackStack(String)
  • @NicolasSimon '当你改变你的片段'是什么意思?您能否解释一下我是这里的初学者。谢谢:)
  • 请参阅下面的@Masum 答案。他使用 beginTransaction() 更改片段(就像您可能正在做的那样)。然后他添加了addToBackStack 调用,因此只要用户单击返回按钮,系统就会“弹出这个片段”

标签: android android-layout android-fragments


【解决方案1】:

您的所有片段都使用 add() 方法而不是 replace() 方法提交。像这样的

android.app.Fragment fragment = new YourFragment();
FragmentManager frgManager = getFragmentManager();
android.app.FragmentTransaction ft = frgManager.beginTransaction();
ft.addToBackStack(null);
ft.add(R.id.content_frame, fragment);
ft.commit();

【讨论】:

  • 谢谢。它解决了这个问题。但它不适用于导航抽屉。当我在导航抽屉中单击返回时,它会返回到 Launch_activity。
猜你喜欢
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多