栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

效果:

总结

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/719205.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号