请帮助我了解调用“onBackPressed”时后退堆栈如何本地工作。我注意到,即使在视觉上它回到了前一个 fragment ,应该弹出的 fragment (我退出的 fragment )仍然在后堆栈中。这是为什么?
然后我将不得不求助于
@Override
public void onBackPressed() {
if(getFragmentManager().getBackStackEntryCount() > 0)
getFragmentManager().popBackStack();
}
这似乎违反直觉。
那么在一个不在后堆栈顶部的 fragment 上是真的吗?那就没有太多的筹码了...
编辑:澄清一下,我的问题是为什么 onBackPressed 没有弹出返回堆栈,并且需要额外调用才能弹出它作为解决方法?如果事情就是这样,我很好,但我想确认一下。
最佳答案
Android 应用程序有一组 Activity 。当在一个 Activity 上调用 onBackPressed 时,它会弹回上一个 Activity 并完成当前 Activity
如果您有一个带有 fragment 的 Activity ,您将拥有另一个堆栈,即 Activity 的 fragment 堆栈,如果您以 solution 的方式覆盖 onBackPressed,则可以控制该堆栈。建议,因此您的 Activity 在弹出所有 fragment 之前不会完成
关于android - onBackPressed中需要popBackStack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28564343/