您的位置:首页 > 其它

多个Fragment之间的切换

2016-03-16 23:53 387 查看
/*

* 跳转到某个fragment,并保存fragment的状态

*/

private void showFragment(int id) {

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

hindFragment(transaction);

switch (id) {

case 1:

if (fragmentMain != null) {

transaction.show(fragmentMain);

} else {

fragmentMain = new MainFragment();

transaction.add(R.id.linear_layout_home_fragment, fragmentMain);

}

break;

case 2:

if (fragmentLookCar != null) {

transaction.show(fragmentLookCar);

} else {

fragmentLookCar = new LookCarFragment();

transaction.add(R.id.linear_layout_home_fragment,

fragmentLookCar);

}

break;

case 3:

if (fragmentShangCheng != null) {

transaction.show(fragmentShangCheng);

} else {

fragmentShangCheng = new ShangChengFragment();

transaction.add(R.id.linear_layout_home_fragment,

fragmentShangCheng);

}

break;

case 4:

if (personalCenterFragment != null) {

transaction.show(personalCenterFragment);

} else {

personalCenterFragment = new PersonalCenterFragment();

transaction.add(R.id.linear_layout_home_fragment,

personalCenterFragment);

}

break;

}

transaction.commit();

}

/*

* 隐藏fragment

*/

private void hindFragment(FragmentTransaction transaction) {

if (fragmentMain != null) {

transaction.hide(fragmentMain);

}

if (fragmentLookCar != null) {

transaction.hide(fragmentLookCar);

}

if (fragmentShangCheng != null) {

transaction.hide(fragmentShangCheng);

}

if (personalCenterFragment != null) {

transaction.hide(personalCenterFragment);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: