gpt4 book ai didi

android - 如何阻止后退按钮返回到 Activity 中打开的每个 fragment ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:52 31 4
gpt4 key购买 nike

我正在使用它根据设备的屏幕尺寸启动一个新 fragment 。

FragmentManager fragMgr = getSupportFragmentManager();
releaseInfoFragment release = (releaseInfoFragment)fragMgr.findFragmentById(R.id.release);

release = releaseInfoFragment.newInstance(url);
FragmentTransaction xaction = fragMgr.beginTransaction();
xaction.replace(R.id.release, release)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.addToBackStack(null)
.commit();
}

问题是当用户按下后退按钮时,它会返回到在 Activity 生命周期中打开的每个 fragment 。我怎样才能在它不这样做的地方做到这一点?我只想让它在第一次按下时删除 fragment ,然后在第二次点击时返回到以下 Activity 。

我该怎么做?

最佳答案

如果您不想遍历每个 fragment ,请从您的事务中删除 addToBackStack(null)。函数调用 addToBackStack(null) 是将 Fragment 添加到返回堆栈的指令。

编辑

我不知道有什么简单的方法可以从后台堆栈中删除所有 fragment 。在我的脑海中,我建议这样做:

  1. 保留对 addToBackStack(null) 的调用,以便将所有 Fragment 添加到返回堆栈
  2. 覆盖您的 Activity 的 onBackPressed() 方法并使用 popBackStack() 弹出所有 fragment

查看 Android documentation对于 popBackStack(),似乎有一些不错的功能可以帮助您:

POP_BACK_STACK_INCLUSIVE: Flag for popBackStack(String, int) and popBackStack(int, int): If set, and the name or ID of a back stack entry has been supplied, then all matching entries will be consumed until one that doesn't match is found or the bottom of the stack is reached.

popBackStack(int id, int flags) Pop all back stack states up to the one with the given identifier.

关于android - 如何阻止后退按钮返回到 Activity 中打开的每个 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7139213/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com