【问题标题】:removing fragment with popBackStack();使用 popBackStack() 删除片段;
【发布时间】:2018-04-16 15:04:26
【问题描述】:

我在一项活动中有几个片段。在主要活动中,我在onBackPressed(); 中实现了popBackStack();

因此,您始终可以单击返回按钮返回到上一个片段。 但是popBackStack(); 并没有删除我刚刚留下的片段。

如何实现每次移除当前fragment,我们点击返回 按钮?

【问题讨论】:

  • 如何加载片段?你调用 addToBackStack() 吗?如果是这样,您不需要像 Android 那样实现 onBackPressed()。
  • 如code-apprentice所说,如果你在fragment事务中正确添加了fragment。然后你不需要专门弹出片段。 popbackStack 一般用于后退按钮以外的按钮和点击

标签: java android android-fragments


【解决方案1】:
 public void removeFragmentbyTag(String myFrag){

 FragmentManager manager = getActivity().getSupportFragmentManager();
 FragmentTransaction trans = manager.beginTransaction();
 trans.remove(myFrag);
 trans.commit();
 manager.popBackStack();
}

希望这段代码对你有所帮助。

【讨论】:

  • 如何使用 onBackPressed 函数在 MainActivity 中获取片段标签?
  • 当你将片段添加到主活动时,为每个片段添加片段标签
  • getFragmentManager().beginTransaction().add(R.id.fragment_container, fragmentToBeAdded, tag).commit();其中标签是字符串
  • 你可以参考这个链接stackoverflow.com/questions/30062129/…
  • 谢谢。你拯救了我的一天。
猜你喜欢
  • 2014-06-23
  • 1970-01-01
  • 2014-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-11
  • 2021-04-23
相关资源
最近更新 更多