現(xiàn)在在android app的開發(fā)中热鞍,F(xiàn)ragment使用也越來越多捌治,怎么管理Fragment也是一個(gè)普遍存在的問題,一般情況下我們加入Fragment的時(shí)候胞谈,如果是添加進(jìn)了回退棧尘盼,那么按返回鍵就會(huì)退出上一層,加入的時(shí)候代碼如下:
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(id, targetFragment, tag);
transaction.addToBackStack(tag);
transaction.commitAllowingStateLoss();
那么有可能存在一種情況烦绳,退出的Fragment是比較深卿捎,然后退出的時(shí)候需要把前面的都退出掉,比如A->B->C->D->E径密,這個(gè)時(shí)候如果退出E想把前面的都退出掉午阵,該怎么實(shí)現(xiàn)?
for (int i = manager.getBackStackEntryCount() -1;i>=0;i--){
manager.popBackStack(manager.getBackStackEntryAt(i).getName(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
Fragment fragment = manager.findFragmentByTag(manager.getBackStackEntryAt(i).getName());
if (null != fragment) {
FragmentTransaction transaction = manager.beginTransaction();
transaction.remove(fragment);
transaction.commitAllowingStateLoss();
}
}