android 多个Fragment切换时的注意事项
Posted IyangcLove
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 多个Fragment切换时的注意事项相关的知识,希望对你有一定的参考价值。
android 中多个Fragment进行切换时 ,如图 tab 切换 导航栏。
FragmentManager 获取到的FragmentTransaction对象 不能执行多次commit() 否则会报异常 。可以通过 获取不同的事务对象 进行事务的提交。主要代码:
FragmentTransaction ft;
FragmentManager fm;
//Fragment 对象
FragPrice fragPrice;
FragMsg fragMsg;
FragSetting fragSetting;
@Override
public void onClick(View v)
fm = getSupportFragmentManager();
ft = fm.beginTransaction();
switch (v.getId())
case R.id.barbottom_btn_left: // 价格表
fragPrice = new FragPrice();
ft.replace(R.id.fl_replace, fragPrice);// 替换当前显示的页面
ft.addToBackStack(null);//添加此方法后 按返回键 会返回上次操作的fragment界面,如果多个fragment 切换后需要灵活运用添加
ft.commit();
case R.id.barbottom_btn_center: // 消息列表 <pre name="code" class="java"> fragMsg =new FragMsg();
ft.replace(R.id.fl_replace, fragMsg);// 替换当前显示的页面
ft.commit();// 提交
break;
case R.id.barbottom_btn_right: // 设置
fragSetting=new FragSetting();
ft.replace(R.id.fl_replace, fragSetting);// 替换当前显示的页面
ft.commit();// 提交
break;
关于ft.addToBackStack(null),可以参考一下: http://blog.csdn.net/jwzhangjie/article/details/27326039 。还有就是在fragment中进行数据的更新 :例如 图片更新 ,消息记录更新等 可以在Activity 中发送广播 fragment中接收广播 进行处理。 直接更新是不会有效果的 我之前写过一篇 文章 可供参考: http://blog.csdn.net/yangbo437993234/article/details/36503643
以上是关于android 多个Fragment切换时的注意事项的主要内容,如果未能解决你的问题,请参考以下文章