关闭一个Fragment 的方法:
方法一:回退栈的方法,通过tag,关闭特定的Fragment
popBackStack(arg0,arg1)
arg0:回退fragment的标记tag
arg1:是否包含该fragment.(0不包含,1包含)
示例:
private void finishFragment() {
List<Fragment> fragments = getFragmentStack();
int len = fragments.size();
for (int i = len - 1; i > 0; i--) {
Fragment fragment = fragments.get(i);
if (fragment instanceof PointHistoryFragment) {
getFragmentManager().popBackStack("PointHistoryFragment", FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
}
}
方法二:通过remove的方式
private void finishFragment() {
List<Fragment> fragments = getFragmentStack();
int len = fragments.size();
for (int i = len - 1; i > 0; i--) {
Fragment fragment = fragments.get(i);
if (fragment instanceof PointHistoryFragment) {
getFragmentManager().beginTransaction().remove(fragment).commit();
}
}
}
方法三:(不建议使用这一种方法,会把栈顶的Fragment关闭),会对其他的模块产生影响
getFragmentManager().popBackStackImmediate();