Fragment add、hide、show方式的例子
private FragmentManager fragmentManager;
private Fragment lastFragment;
private void fragmentSelected(Fragment fragment) {
//如果fragment已经是显示着的,直接return
if( lastFragment == fragment ) return;
//获取FragmentManager
if( fragmentManager == null ) fragmentManager = getSupportFragmentManager();
//每次都必须new一个事务
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
//隐藏之前显示的fragment
if( lastFragment != null ){
fragmentTransaction.hide(lastFragment);
}
//判断fragment add过没,没有add过则add
if( !fragment.isAdded() ){
fragmentTransaction.add(R.id.home_frame,fragment);
}
//显示fragment
fragmentTransaction.show(fragment);
//提交事务
fragmentTransaction.commit();
//记录显示的fragment
lastFragment = fragment;
}