Rad*_*dwa 3 android android-fragments
我有一个活动,每个片段中有大约10个片段,有一个带有ProgressDialog的AsyncTask我需要离开以关闭所有片段当我点击后按钮它关闭但是ProgressDialog仍然可见,特别是当我在片段之间传输时,这是我使用的代码
@Override
public void onBackPressed() {
if(fragmentManager!=null){
for(int i = 0; i < fragmentManager.getBackStackEntryCount(); ++i) {
fragmentManager.popBackStack();
}}
}
Run Code Online (Sandbox Code Playgroud)
当我调试时,我发现它为我按下后退按钮时打开的每个片段进入onCreateView,尽管我使用transaction.replace方法在片段之间进行传输.
我正在通过以下方法清除堆栈.
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);
}
}
Run Code Online (Sandbox Code Playgroud)
清除1表示将从堆栈中删除所有片段,并且只有单个片段将保留在堆栈中.
用法popBackStackTillEntry(1);
| 归档时间: |
|
| 查看次数: |
2035 次 |
| 最近记录: |