您的位置:首页 > 其它

使用FrameLayout替换Fragment时 不销毁Fragment

2016-07-14 23:11 309 查看
如果使用FragmentManager.beginTransaction().replace().commint().时,被替换的Fragment会被销毁掉,再次启动时,之前的数据就会丢失,如果我们只是想暂时切换到其他Fragment中,之后再返回,就需要用FragmentManager.beginTransaction().add ().commint()添加Fragment,如果已经add过,则将当前显示的Fragment 使用FragmentTransaction.hide()方法隐藏掉,再通过FragmentTransaction.show()方法显示出来即可。

贴代码:

FragmentTransaction ft=fragmentManager.beginTransaction();

public void hideFragment(FragmentTransaction ft){
if (fra_person != null)
ft.hide(fra_person);
if (fra_map != null)
ft.hide(fra_map);
}

ft.commit();if (fra_map == null) {
fra_map = new Fragment_map();
ft.add(R.id.framelayout,fra_map);
}else{
ft.show(fra_map);
}
ft.commit();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: