gpt4 book ai didi

Android 关闭所有 fragment onBackPressed

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:02 25 4
gpt4 key购买 nike

我有一个 Activity ,每个 fragment 中有大约 10 个 fragment ,有一个带有 ProgressDialog 的 AsyncTask 当我单击返回按钮时,我需要离开以关闭所有 fragment 它已关闭,但 ProgressDialog 仍然可见,尤其是当我在 fragment 之间转移时这是我使用的代码

 @Override
public void onBackPressed() {
if(fragmentManager!=null){
for(int i = 0; i < fragmentManager.getBackStackEntryCount(); ++i) {
fragmentManager.popBackStack();
}}
}

此外,当我调试时,我发现当我按下后退按钮时,它会为我打开的每个 fragment 进入 onCreateView,尽管我使用 transaction.replace 方法在 fragment 之间传输。

最佳答案

我正在通过以下方法清除堆栈。

  public void popBackStackTillEntry(int entryIndex) {

if (getSupportFragmentManager() == null) {
return;
}
if (getSupportFragmentManager().getBackStackEntryCount() <= entryIndex) {
return;
}
FragmentManager.BackStackEntry entry = getSupportFragmentManager().getBackStackEntryAt(
entryIndex);
if (entry != null) {
Utilities.sDisableFragmentAnimations = true;
getSupportFragmentManager().popBackStackImmediate(entry.getId(),
FragmentManager.POP_BACK_STACK_INCLUSIVE);
}


}

Clear up to 1 表示所有 fragment 将从堆栈中删除,只有一个 fragment 将保留在堆栈中。

用法 popBackStackTillEntry(1);

关于Android 关闭所有 fragment onBackPressed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41549112/

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