private void setFragment(int index) {
//获取Fragment管理器
FragmentManager mFragmentManager = getSupportFragmentManager();
//开启事务
FragmentTransaction mTransaction = mFragmentManager.beginTransaction();
//隐藏所有Fragment
hideFragments(mTransaction);
switch (index) {
default:
break;
case 0:
//显示对应Fragment
if (fragmentA == null) {
fragmentA = new FragmentA();
mTransaction.add(R.id.ll_fragment, fragmentA,
"fragment_A");
} else {
mTransaction.show(fragmentA);
}
break;
case 1:
if (fragmentB == null) {
fragmentB = new FragmentB();
mTransaction.add(R.id.ll_fragment, fragmentB,
"fragment_B");
} else {
mTransaction.show(fragmentB);
}
break;
case 2:
if (fragmentC == null) {
fragmentC = new FragmentC();
mTransaction.add(R.id.ll_fragment, fragmentC,
"fragment_C");
} else {
mTransaction.show(fragmentC);
}
break;
}
//提交事务
mTransaction.commit();
}
private void hideFragments(FragmentTransaction transaction) {
if (fragmentA != null) {
//隐藏Fragment
transaction.hide(fragmentA);
}
if (fragmentB != null) {
transaction.hide(fragmentB);
}
if (fragmentC != null) {
transaction.hide(fragmentC);
}
}
封装的方法,在点击事件调用setFragment(), 传入下标,在对应的case下,处理就可以