Android开发中Fragment的切换有两方法
1、使用replace
public void replaceFragment(Fragment fragment) {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
transaction.replace(R.id.fragment_content, fragment);
transaction.commit();
}
使用该方法需要注意的是每一次切换Fragment的生命周期都会被调用一次
2、使用add-show-hide
public void showFragment(int index) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
hideFragment(ft);
switch (index) {
case 0: {
if(mHomeFragment == null) {
mHomeFragment = new HomeFragment();
ft.add(R.id.fragment_content,mHomeFragment);
}else {
ft.show(mHomeFragment);
}
break;
}
case 1: {
if(mTaskFragment == null) {
mTaskFragment = new TaskFragment();
ft.add(R.id.fragment_content,mTaskFragment);
}else {
ft.show(mTaskFragment);
}
break;
}
default:
break;
}
ft.commit();
}
public void hideFragment(FragmentTransaction ft){
//如果不为空,就先隐藏起来
if (mHomeFragment!=null){
ft.hide(mHomeFragment);
}
if(mTaskFragment!=null) {
ft.hide(mTaskFragment);
}
}
常用的方法
fragment.isAdded 判断是否被添加过