Android之Fragment的切换不对Fragment进行重新加载

来源:互联网 发布:蜜蜂软件的注册码 编辑:程序博客网 时间:2024/05/22 03:18

开发的时候,有时候Fragment的切换,是不需要对原先的Fragment进行重新加载的。而Fragment的界面是既可以进行重新加载,也可以不进行重新加载。

每次重新加载的话,我们是使用的replace来进行fragment的替换的。

如果,不对fragment的数据进行重新加载的话,那么就用add来添加fragment,显示的时候用show,切换的时候用hide掉当前的,show切换的目标。

具体的实现代码如下:

private FragmentManager fm;private FragmentTransaction ft;
//之前显示的fragmentpublic Fragment mContent, fragment_in, fragment_qm, fragment_se;
//三个fragmentfragment_in = new MakePlanFragment();fragment_qm = new CourseFragment();fragment_se = new MakePlanFragment();setDefaultFragment(fragment_in);
设置默认的fragment的显示。没有切换的时候显示的fragment。

public void setDefaultFragment(Fragment fragment) {    fm = getFragmentManager();    ft = fm.beginTransaction();    ft.add(R.id.fragment_content, fragment).commit();    mContent = fragment;}
//切换fragment的显示隐藏public void switchContent(Fragment to) {    if (mContent != to) {        fm = getFragmentManager();        ft = fm.beginTransaction();        if (!to.isAdded()) {    // 先判断是否被add            ft.hide(mContent).add(R.id.fragment_content, to).commit(); // 隐藏当前的fragmentadd下一个到Activity        } else {            ft.hide(mContent).show(to).commit(); // 隐藏当前的fragment,显示下一个        }        mContent = to;    }}
上面的这个switchContent的方法就是切换fragment的方法封装。在使用的地方,直接传入我们需要的目标fragment即可。如下:

switchContent(fragment_in);
传参为我们要切换的目标fragment。这样就实现了我们的切换fragment,但是不重新进行加载。


如果要进行重新加载,关键代码如下:

fm = getFragmentManager();ft = fm.beginTransaction();ft.replace(R.id.fragment_content, fragment_in);ft.commit();
这就是重载与不重新加载的区别。理解了本质就简单多了。

1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 王者荣耀以前玩的区找不到了怎么办 电脑分辨率调高了游戏进不去怎么办 键盘语言更改后进不去系统怎么办 高尔夫旅行款 被锁在车内怎么办 在天猫买东西垫付的运费不退怎么办 天猫店一口价定价定低了怎么办 服务器开机账号改了密码忘了怎么办 小米儿童电话手表开不开机怎么办? 上海拍牌超过5次违章怎么办 拍拍贷不能更新还不了款怎么办 起诉网贷平台不知道地址怎么办 网贷不知道在哪个平台借的怎么办 车过户后出现问题车主不承认怎么办 卖了车买家一直不过户怎么办 我的车卖了但是买家不过户怎么办 如果买家拍了赠品但联系不上怎么办 淘宝产品处罚下架顾客退货怎么办 生源地贷款续贷密码忘了怎么办 助学贷款续贷密码忘了怎么办 京东上回收东西如果是坏的怎么办 58.同城找的工作被骗了怎么办 京东第三方买了二手机怎么办 手机无法显示百度视频的视频怎么办 如果微信被盗号朋友钱被骗怎么办 绑定银行卡的电话号码换了怎么办办 银行卡绑定的手机号空号了怎么办 微信提示绑定银行卡次数超限怎么办 手机卡太久没用被注销了怎么办 电信宽带欠费缴费后上不了网怎么办 电信宽带欠费后缴费连不上网怎么办 电脑开不了机屏亮但不开机怎么办 手机信息探探链接点开了怎么办 买的钻戒的票丢掉了怎么办 如果我过户了原来的积分怎么办? 英雄联盟安装到了一半卡住了怎么办 微信登录不上怎么办一直在转圈 lol老是忘了放装备技能怎么办 英雄联盟屏幕出现红框锁定了怎么办 钢三开局修改对电脑有用怎么办 我的世界为什么一直黑屏闪退怎么办 苹果6plus玩游戏闪退怎么办