(原创)Fragment详解(中)

今天来讲讲Fragment的动态加载

要用到Fragment的动态加载,首先我们要认识一个新东西

这个东西叫做FragmentManager

顾名思义,这个东西叫做Fragment的管理器

那么如何通过它去实现Fragment的动态加载呢?

首先,对于一个页面

如果我们要他根据不同的需求显示不同的页面

最常见的就是一些app的主页面下有好几个按钮

点击不同的按钮然后显示不同的页面

常见的有QQ、微信等。

首先,我们要做的就是在xml中写一个占位的布局

个人推荐用帧布局来占位

给这个帧布局设置好id后,就开始使用Fragmentmanager了

1:实例化得到fragmentmanager对象

private FragmentManager fragmentManager;
//获得FragmentManager对象
fragmentManager = getSupportFragmentManager();

2:这里我们要通过这个对象得到Fragment的事务管理器

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

注意,这个fragmentTransaction就是用来操作显示不同的Fragment页面的了

它有一个add方法,方法里面有两个参数是必须写的

第一个参数是你的占位的帧布局的id

第二个参数写你要显示的fragment类对象

第三个参数可写可不写,它是一个tag值,

写了之后你可以通过fragmentTransaction.findFragmentByTag()得到拥有这个tag的Fragment对象

最后进行提交,这个占位的帧布局就会显示你写的fragment的页面内容了

fragmentTransaction.commit();

其实,除了add方法,fragmentTransaction还有几个方法

Replace:替换,他会把fragment里原来存在的fragment替换掉。比如你add一个页面1,然后再add一个页面2,之后replace页面3,那么页面1和页面2都会被销毁,只留下页面3了

Show和hide:你在add完一个页面后,可以调用hide隐藏,需要再显示时,调用show即可。注意,hide只会销毁fragment的视图对象,replace则是彻底销毁。被replace销毁掉的fragment需要重新add才能调用show或者hide哦。

提醒一下,不管你做以上四个操作中的哪一个,都要去用FragmentManager去获得fragmentTransaction,最后记得提交哦。

最后,关于Fragment的onResume() 以及可见状态的判断可以见下面这篇博客:

关于Fragment的onResume() 以及可见状态的判断_当fragment的onresume被执行后一定是可见的吗_川峰的博客-CSDN博客

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值