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

Android Fragment详细剖析(一)| CSDN创作打卡,第1张

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

详谈Fragment

***前言***1.Fragment——碎片2.Fragment的生命周期3.Fragment和Activity的通信总结

前言

就是心血来潮突然想写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



效果:


【案例】将移除的fragment加入到回退栈

效果:

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

效果:

总结

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5715523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存