【问题标题】:android don't lose Fragment when back button is pressed按下后退按钮时android不会丢失片段
【发布时间】:2019-12-18 17:56:06
【问题描述】:
用户创建一些 Fragments 并将其添加到由标签标识的 Activity 中。我注意到在按下后退按钮时,片段被破坏了。按下后退按钮时如何不丢失所有碎片?这样我就可以在不重新创建片段的情况下导航。我正在寻求一种正确的方法来做到这一点,实际上我现在的想法是覆盖 onBackPressed() 并将 Fragment 保存在 Fragments 的 List 全局变量中,然后再销毁它。
【问题讨论】:
标签:
android-fragments
onbackpressed
data-loss
【解决方案1】:
在创建片段而不是 FragmentTranscation.replace 时,使用 FragmentTranscation.addTobackStack() 将片段添加到 backstack 并且在 BackPressed 上不执行任何操作。
按下后退按钮时,FragmentTranscation 将负责导航到之前的片段。
【解决方案2】:
你可以在 onBackPressed() 函数中试试这个。
if (getSupportFragmentManager().getBackStackEntryCount() > 1) {
getSupportFragmentManager().popBackStack();
} else {
super.onBackPressed();
}