Android Fragment详细剖析(一)| CSDN创作打卡

前言

就是心血来潮突然想写fragement的博客啊!

1.Fragment——碎片

1.Fragment——碎片
它是嵌入到Activity中的片段,google在使用Activity时,发现Activity耗费资源的更多,为了能够复用界面中的一部分组件,推出Fragment。也就是一个Activity可以包含多个Fragment,每个Fragment可以进行复用,从而节约资源。Fragment不能独立存在,需要依附于Activity,Fragment有自己的生命周期,可以接收输入事件。通过Activity可以动态添加或删除Fragment。
如何使用Fragment?
(1)静态创建Fragment
步骤:
1)为Fragment创建一个布局
2)定义一个Fragment子类,实现OncreateView方法,加载之前定义的布局
3)在Activity的布局文件中引用定义的Fragment
【案例】
在这里插入图片描述
fragment_a.xml
在这里插入图片描述
在这里插入图片描述
AFragment.java
在这里插入图片描述
activity_main.xml
在这里插入图片描述
效果:
在这里插入图片描述
(2)动态创建Fragment
步骤:
1)创建Fragment对应的布局文件
2)创建Fragment的子类,加载这个布局文件
3)使用java代码创建Fragment的实例
4)使用FragmentManager、FragmentTransaction
4.1)获取FragmentManager对象
4.2)打开FragmentTransaction,获取transaction对象
4.3)在指定容器中加载新的Fragment,使用transaction的add方法
4.4)提交,让加载生效
在这里插入图片描述
fragment_b.xml
在这里插入图片描述
BFragment.java
在这里插入图片描述
activity_main2.xml
后接
在这里插入图片描述
MainActivity2.java
在这里插入图片描述
效果:
在这里插入图片描述
【案例】移除Fragment
transaction.remove(fragment);
在这里插入图片描述
修改activity_main2.xml
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改MainActivity2.java
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
效果:
1
2
【案例】将移除的fragment加入到回退栈
在这里插入图片描述
效果:
1
2

2.Fragment的生命周期

使用向导的方式创建fragment。
在这里插入图片描述
项目结构:
在这里插入图片描述
fragment_c.xml
在这里插入图片描述
CFragment.java
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
activity_main3.xml
在这里插入图片描述
activity_main4.xml
在这里插入图片描述
MainActivity4.java
在这里插入图片描述
效果:
在这里插入图片描述
日志:
在这里插入图片描述
测试:
1)静态加载,看onInflate是否执行
2)动态加载,看onInflate是否执行
3)动态加载,看onAttach、onCreate执行情况

1.fragment的替换(附加)
使用FragmentTransaction对象的replace方法,将布局中原有的fragment替换成新的Fragment。
replace=remove+add;
【案例】
在这里插入图片描述
fragment_a.xml
在这里插入图片描述
fragment_b.xml
在这里插入图片描述
activity_main.xml
在这里插入图片描述
在这里插入图片描述
AFragment.java
在这里插入图片描述
BFragment.java
在这里插入图片描述
MainActivity.java
在这里插入图片描述
效果:
在这里插入图片描述
在这里插入图片描述
2.Fragment的生命周期2
【案例】体验
测试1(替换Afragment,并且将其加入回退栈):
从启动到运行:

在这里插入图片描述
运行到销毁视图:
在这里插入图片描述
销毁视图到重新显示(从回退栈中返回):
在这里插入图片描述
测试2(被替换的AFragment不加入回退栈):
从启动到运行:
在这里插入图片描述
在这里插入图片描述
从运行到销毁:
在这里插入图片描述
使用生命周期的作用:
在每个阶段实现不同的事务。
参考代码:
修改AFragment.java
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参考图:
在这里插入图片描述

3.Fragment和Activity的通信

(1)Fragment和Activity互相获取对方的组件
例如:Fragment获取Activity的TextView;Activity获取Fragment的TextView;
【案例】Fragment获取Activity
Fragment中一个Button点击后获取Activity中的TextView
在这里插入图片描述
fragment_c.xml
在这里插入图片描述
在这里插入图片描述
activity_main2.xml
在这里插入图片描述
在这里插入图片描述
MainActivity2.java
在这里插入图片描述
CFragment.java
在这里插入图片描述
效果:
在这里插入图片描述

总结

代码以图片形式给大家参考和学习一下下,希望大家可以自己操作打一遍,这样理解后手不会生了!
么么叽么么叽么么哒!
在这里插入图片描述

后续板块在这里!
点这里看后面!

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫白媛

老板给个铜板啊!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值