Android碎片Fragment详讲(1)

Android之Fragment 碎片(1) 算法知识点繁多,企业考察的题目千变万化,面对越来越近的“金九银十”,我给大家准备好了一套比较完善的学习方法,希望能帮助大家在有限的时间里尽可能系统快速的恶补算法,通过高效的学习来提高大家面试中算法模块的通过率。这一套学习资料既有文字档也有视频,里面不仅仅有关键知识点的整理,还有案例的算法相关部分的讲解,可以帮助大家更好更全面的进行学习,二者搭配起来学习效果会更好。部分资料展示:有了这套学习资料,坚持刷题一周,你就会发现自己的算法知识体系有明显的完善,离大厂Offer的距离更加近。 阅读详情

Fragment

Fragment创建的步骤

1、        继承fragment一定是V4包下的

2、        有且只有一个无参的构造方法

3、        如果Fragment需要显示界面,需要重写onCreateView方法

4、        指定布局资源,或者创建布局,返回即可

静态创建fragment时:

需要指定fragment的class属性 以及给Fragment加上id或者tag属性

 

在onCreateView内部,可以设置控件的内容,开启线程,连接网络.。

Fragment的作用

1、        简化重复的开发工作,将内容与工程整合,最终提供功能的重用性

2、        体改内聚,减少耦合成都度

3、        Fragment用于布局界面的切分和优化,减少布局的重复,提高开发的效率。

通常tab样式的切换,,使用RadioGroup。

 

主流的底部tab切换页面的设计方式:就是中间一个FrameLayout 底部RadioGroup 切换时,替换FrameLayout中的fragment

每一个Fragment可以通过两种方式添加到activity中

1)        使用fragment标签直接添加到activity

2)    使用代码来添加使用两个类,Frgamentmanager SupportFragmentManager

3)    内部添加删除替换隐藏显示,需要manager.beginTransaction()

4)    事物每次操作之前必须重启,不允许使用成员变量的方式。

Fragment的生命周期:

1、        Fragment的声明周期和activity的声明周期相似

2、        以为Fragment依赖于Activity显示,那么当Activity发生生命周期变化的时候,Fragment同样发生相同的变化,包括

1)        onCrate

2)        onStart

3)        onResume

4)        onPause

5)        onStop

6)        onDestroy

Fragment还有一些声明周期

onAttach():执行该方法时,Fragment与Activity已经完成绑定,该方法有一个Activity类型的参数,代表绑定的Activity,这时候你可以执行诸如mActivity = activity的操作。
onCreate():初始化Fragment。可通过参数savedInstanceState获取之前保存的值。
onCreateView():初始化Fragment的布局。加载布局和findViewById的操作通常在此函数内完成,但是不建议执行耗时的操作,比如读取数据库数据列表。
onActivityCreated():执行该方法时,与Fragment绑定的Activity的onCreate方法已经执行完成并返回,在该方法内可以进行与Activity交互的UI操作,所以在该方法之前Activity的onCreate方法并未执行完成,如果提前进行交互操作,会引发空指针异常。
onStart():执行该方法时,Fragment由不可见变为可见状态。
onResume():执行该方法时,Fragment处于活动状态,用户可与之交互。
onPause():执行该方法时,Fragment处于暂停状态,但依然可见,用户不能与之交互。
onSaveInstanceState():保存当前Fragment的状态。该方法会自动保存Fragment的状态,比如EditText键入的文本,即使Fragment被回收又重新创建,一样能恢复EditText之前键入的文本。
onStop():执行该方法时,Fragment完全不可见。
onDestroyView():销毁与Fragment有关的视图,但未与Activity解除绑定,依然可以通过onCreateView方法重新创建视图。通常在ViewPager+Fragment的方式下会调用此方法。
onDestroy():销毁Fragment。通常按Back键退出或者Fragment被回收时调用此方法。
onDetach():解除与Activity的绑定。在onDestroy方法之后调用。

生命周期:



当Activity启动后,首先执行activity的onCreate方法,之后执行Fragment的onAttch方法,当进行replace方法是,执行onDetachon方法。


启动APP的声明周期变化:


当fragment进行切换的时候,生命周期的变化:


首先是两一个Fragment先与Activity进行连接,执行onAttach方法,

之后Fragment执行onCraete方法,

之前的fragment进入到不可见状态onPause,之后之前的Fragment onStop 销毁界面,之后销毁,之后与Activity失去联系,

此时先的Fragment创建View视图,执行onCrateView方法,之后onActivityCrate方法,start,进入活动状态onResuume状态。

点击back键:

Fragment  执行onPuase不可见onStop  ondestroyView   ondestroy onDetach方法。


这个界面的时候,执行onPause  onstop

 

恢复之后:Fragment onStart   Activity onstart  Activity onResume   Fragment onResume

 

 

 

参考:借鉴于网络

生命周期变化 : 切换到该Fragment

 

05-21 14:26:35.095:D/FragmentDemo(7649): onAttach

 05-21 14:26:35.095: D/FragmentDemo(7649):onCreate

 05-21 14:26:35.095: D/FragmentDemo(7649):onCreateView

 05-21 14:26:35.100: D/FragmentDemo(7649):onActivityCreated

 05-21 14:26:35.120: D/FragmentDemo(7649):onStart

 05-21 14:26:35.120: D/FragmentDemo(7649):onResume

 

屏幕灭掉:

 

05-21 14:27:35.185:D/FragmentDemo(7649): onPause

 05-21 14:27:35.205: D/FragmentDemo(7649):onSaveInstanceState

 05-21 14:27:35.205: D/FragmentDemo(7649):onStop

 

屏幕解锁

 

05-21 14:33:13.240:D/FragmentDemo(7649): onStart

 05-21 14:33:13.275: D/FragmentDemo(7649):onResume

 

切换到其他Fragment:

 

05-21 14:33:33.655:D/FragmentDemo(7649): onPause

 05-21 14:33:33.655: D/FragmentDemo(7649):onStop

 05-21 14:33:33.660: D/FragmentDemo(7649):onDestroyView

 

切换回本身的Fragment:

 

05-21 14:33:55.820:D/FragmentDemo(7649): onCreateView

 05-21 14:33:55.825: D/FragmentDemo(7649):onActivityCreated

 05-21 14:33:55.825: D/FragmentDemo(7649):onStart

 05-21 14:33:55.825: D/FragmentDemo(7649):onResume

 

回到桌面

 

05-21 14:34:26.590:D/FragmentDemo(7649): onPause

 05-21 14:34:26.880: D/FragmentDemo(7649):onSaveInstanceState

 05-21 14:34:26.880: D/FragmentDemo(7649):onStop

 

 

 

回到应用

05-21 14:36:51.940:D/FragmentDemo(7649): onStart

 05-21 14:36:51.940: D/FragmentDemo(7649):onResume

 

退出应用

05-21 14:37:03.020:D/FragmentDemo(7649): onPause

 05-21 14:37:03.155: D/FragmentDemo(7649):onStop

 05-21 14:37:03.155: D/FragmentDemo(7649):onDestroyView

 05-21 14:37:03.165: D/FragmentDemo(7649):onDestroy

05-21 14:37:03.165:D/FragmentDemo(7649): onDetach

如果替换或者删除一个fragment然后然用户可以导航到上一个fragment,必须在调用commit()方法之前调用addToBackStack()方法添加到回退栈,如果你把这个fragment添加到了回退站栈,在提交之后这个fragment会是被Stop而不是destroy,如果用户导航到这个fragment,这个fragment将会被Restart而不是重新创建,如果没有吧它添加到回退栈,则在删除或者替换的时候它被Destroyed。

与其他fragment之间的交互:

     两个单独的fragment之间是不应该进行通信的,应该使用他们所在的Activity作为沟通的纽带

     为了实现两个Fragment的交互,您可以在Fragment中定义一个接口,然后再这个接口中定义一个方法,在Fragment的onAttach()方法中调用这个接口中的方法。然后让Activity实现这个方法来完成Activity和Fragment之间的通信。

 

 

 

Android之Fragment 碎片 由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!以下是目录截图:**[外链图片转存中…(img-4B969j5i-1714709897325)] 阅读详情

相关推荐

Android入门(10)| Fragment碎片详解

文章目录为什么要使用碎片(Fragment)实例布局文件Fragment 为什么要使用碎片(Fragment) 我们在手机上看新闻可能是这样的: RecyclerView 显示了一组新闻标题 点击一个新闻后会跳转到新界面显示详细内容 但当设备屏幕很大时,我们完全可以将 RecyclerView 和 详细内容 分别放在两个 碎片 中,然后引入同一个 活动: Fragment 的定义为小活动,同样具有生命周期,但比一个 Activity 更细化的管理空间。 实例 布局文件 定义两个布局文件: lef

Jormungand_V的博客 1815

app包中的fragment和v4包中的fragment的使用的区别

1、尽量不要用app包中的fragment,因为这个是在3.0之后才有的,支持的版本太高,在低版本中是是用不了的 2、android.support.v4.app.Fragment:可以兼容到1.6的版本, 3、关于这两个fragment使用标签的问题 (1)app.fragment和v4.fragment都是可以使用标签的 只是在在使用的时候如果是app.fragment则没有什

LIAN_1988的专栏 816

VBA一键汇总多个工作簿-名称相同的工作表-的指定区域数据

VBA一键汇总多个工作簿-名称相同的工作表-的指定区域数据 日常工作,我们经常需要汇总相同格式的工作簿的某个工作表的数据 如1月业绩、2月业绩。。。。12月业绩等 姓名 数量 数据22 22 数据23 23 数据24 24 数据25 25 数据26 26 数据27 27 数据28 28 数据29 29 数据30 30 数据31 31 数据32 32 数据33 33 数据34

陈表达的博客 5983

Android基础-Fragment(碎片)详细介绍(二)

一、Fragment的状态和回调 1. 运行状态 当一个碎片是可见的,并且它所关联的活动正处于运行状态时,该碎片也处于运行状态。2. 暂停状态 当一个活动进入暂停状态时(由于另一个未占满屏幕的活动被添加到了栈顶),与它相关联的可见碎片就会进入到暂停状态。 3. 停止状态 当一个活动进入停止状态时,与它相关联的碎片就会进入到停止状态。或者通过调用 FragmentTransaction 的 re...

语桥的博客 427

MRI图像切片(nii格式转2D)

代码参考:将一个MRI(nii格式)数据进行切片 想要批量抽取MRI数据的几个切片,借鉴了上述代码的Python版本,原始代码抽取了全部切片。本次实验主要是抽取sMRI的横断面(axial)方向的其中30张切片,数量根据自己需求可自行设置。 import scipy, numpy, shutil, os, nibabel import sys, getopt import imageio def niito2D(filepath): inputfiles = os.listdir(filep

chs_502的博客 7552

Exposure Fusion

MertensTMO原理详解: 文章:2007年Exposure Fusion 论文链接:http://ntp-0.cs.ucl.ac.uk/staff/j.kautz/publications/exposure_fusion.pdf 论文代码:C版本:https://github.com/JawThrow/ExposureFusion python版本:https://github.com/lzocro/Exposure-Fusion matlab版本:https://github.com/Mericam

大长腿不解释 1655

Android Fragment的用法(一)

1、碎片是什么   碎片(Fragment)是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用的非常广泛。虽然碎片对你来说应该是个全新的概念,但我相信你学习起来应该毫不费力,因为它和活动实在是太像了,同样都能包含布局,同样都有自己的生命周期。你甚至可以将碎片理解成一个迷你型的活动,虽然这个迷你型的活动有可能和普通的活动是一样大的。   那么究竟要如...

weixin_30654583的博客 358

三维视觉智能焊接系统:免示教技术的工业应用实践

本文深入探讨了三维视觉智能焊接系统中免示教技术的工业应用实践。该系统通过三维视觉相机实时扫描工件,自动识别焊缝并生成轨迹,将产线换型时间从数小时缩短至几分钟,显著提升了生产柔性。文章详细解析了其核心硬件、算法及工厂部署流程,并展望了与数字孪生、工艺智能化融合的未来趋势。

weixin_29091105的博客 432

Fragment碎片的基本使用和动态添加使用

#什么是碎片 碎片Fragment是

LJW874362735的博客 802

8.19华为OD机试真题 新系统 - 基站低能耗时段统计 (Java/Py/C/C++/Js/Go)

8.19华为OD机试真题 新系统 - 基站低能耗时段统计 (Java/Py/C/C++/Js/Go)

算法大师! 1155

数控系统(CNC)系列:Hurco VMX42SR_(3).控制系统硬件组成部分

控制箱是CNC系统的核心部分,负责处理所有的控制指令和数据。它通常包含主控板、电源模块、接口板等关键组件。伺服驱动器是CNC系统中的关键组件,负责将主控板发出的控制信号转换为电机所需的驱动电流。它通过闭环控制确保电机的精确运动。电机是CNC系统中的执行机构,负责实现主控板发出的运动指令。常见的电机类型包括步进电机和伺服电机。传感器是CNC系统中的重要组件,用于检测和反馈机床的运行状态。常见的传感器类型包括位置传感器、速度传感器、温度传感器等。电源供应系统为CNC系统的所有组件提供电力。主电源。

2401_87715305的博客 1281

Android基础篇之浅谈Fragment(app包)

这里是用app包写的fragment,因为app包比v4包跟简单 ,也跟容易理解

JonsonBob的博客 1390

100天精通Python(可视化篇)——第98天:Pyecharts绘制多种炫酷日历图参数说明+代码实战

一、日历图介绍 二、基础配置 1. 配置项类 2. 添加函数 3. 日期标签配置 4. 坐标系配置 三、日历图实战 1. 基础日历图 2. 日历热图

努力让自己发光,对的人才能迎着光而来 2万+

详解安卓Fragment(碎片化)

Fragment从字面意思理解就是碎片的意思,当然是为了解决安卓各类设备碎片化严重的问题,比如同样一个App在手机上显示效果还不错,但是一旦上了16:9的平板立刻就变了味,使用安卓平板的同学可能体(bei)会(keng)更深,为此Google官方从android 3.0(对应API 11)引入Fragment,简单理解就是把界面分割成很多碎片,然后根据实际要求最后选择性的进行拼接,比如在手机竖屏模

王呆萌的逼逼叨空间 2341

让旧 Append 字段升级为真正的 Key User Custom Field:基于 SCFD_EUI 的无损转换与 UI / API 暴露实战

摘要:SAP S/4HANA私有云和本地部署项目中,常面临将历史遗留的手工追加字段转换为可管理的Custom Field的挑战。SAP提供通过事务码SCFD_EUI将旧字段转换为ABAP Managed Field(AMF)的路径,实现字段名和数据原地保留的同时获得扩展能力。适用场景包括已沉淀多年数据的字段迁移成本高,或对数据元素有特殊约束需求。转换后字段可在Fiori UI、报表、表单等多触点统一管理。但AMF会增加复杂度,建议优先使用标准Custom Field。操作前需确保开发环境和传输配置正确,并遵

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 248

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Android studio开发实战之碎片Fragment

fragment

weixin_51020083的博客 1828

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

安卓碎片Fragment

为了方便Fragment和Activity之间进行交互,FragmentManager提供了一个类似于findViewById()的方法,专门用于从布局文件中获取Fragment的实例。调用FragmentManager的findFragmentById()方法,可以在Activity中得到相应Fragment的实例,然后就能轻松地调用Fragment里的方法了。(4) 向容器内添加或替换Fragment,一般使用replace()方法实现,需要传入容器的id和待添加的Fragment实例。

君子慎独,不欺暗室。卑以自牧,含章可贞。 1150

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Android Fragment碎片

碎片入门

m0_62786921的博客 497

安卓Fragment实现碎片切换

安卓Fragment实现碎片切换

hollow_future的博客 1253

安卓Android碎片fragment实现静态加载

静态加载好后的界面如下,两个碎片分别位于一个活动的左边和右边: 左边和右边分别为一个碎片,这两个碎片正好将一整个活动布满。一个活动当中可以拥有多个碎片,碎片的含义就是可以在同一个UI界面下,将这个界面分成好几个界面,并且可以分别更新自己的状态,如果没有碎片,那么如果你想要单独在某一个区域实现活动的“跳转”就不可能了,因此我们可以引入碎片,这样就可以在这个区域单独进行碎片的跳转。...

极歌科技 323

安卓开发Java版—— 碎片 fragment

新建一个左侧碎片布局left_fragment.xml,代码如下所示: 这个布局非常简单,只放置了一个按钮,并让它水平居中显示。然后新建右侧碎片布局right_fragment.xml,代码如下所示 现在编写一下LeftFragment中的代码,如下所示: 这里仅仅是重写了Fragment的onCreateView()方法,然后在这个方法中通过LayoutInflater的inflate()方法将刚才定义的left_fragment布局动态加载进来,整个方法简单明了。接着我们用同样的方法再新建一个Right

zyw2002的博客 976

android碎片与view,安卓之碎片Fragment

碎片介绍碎片使用方式碎片生命周期碎片界面滑动碎片介绍碎片是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间。碎片使用方式1)布局文件添加碎片在xml文件直接使用fragment标签2)动态添加碎片可以在程序运行时动态地添加到活动当中,根据具体情况来动态地添加碎片public class MyFragment extends Fragment {@Overridepubl...

weixin_42462474的博客 346

安卓-碎片的使用入门

可以说这样写代码的好处是不会IDE是不会报错引用错误,坏处是和程序的执行顺序正好相反,但是如果你深谙代码的执行逻辑,首先就是在activity_main文件中通过android:name来引用这个碎片类,一步步你想思维,我想可能也是一个写Android代码的好思维方式。说实在的,这个问题并没有看上去那么复杂,它的基本思路非常简单,首先在一个碎片中可以得到与它相关联的活动,然后再通过这个活动去获取另外一个碎片的实例,这样也就实现了不同碎片之间的通信功能,因此这里我们的答案是肯定的。

m0_63893772的博客 1544

android动态碎片,安卓Android碎片fragment实现静态加载

静态加载好后的界面如下,两个碎片分别坐落一个活动的左边和右边:左边和右边分别为一个碎片,这两个碎片正好将一整个活动布满。一个活动傍边能够拥有多个碎片,碎片的含义就是能够在同一个UI界面下,将这个界面分成好几个界面,而且能够分别更新自己的状况,假如没有碎片,那么假如你想要独自在某一个区域完成活动的“跳转”就不或许了,因而咱们能够引进碎片,这样就能够在这个区域独自进行碎片的跳转。在利用底部标题栏进行主...

weixin_39629129的博客 207

安卓碎片(Fragment)的使用

碎片(Fragment)是一种可以嵌入在活动中的UI片段,它能让程序更加合理和充分的利用大屏幕,非常重要的是碎片还可以动态加载,可以让我们在一个活动中很方便的去切换展示的内容,这可以提高用户体验,比如微信,当我们点击下方tab bar时并没有开启一个新的活动,而是把tab bar上方展示的内容切换了,这要比每次点击都跳转到新页面的用户体验好多了。

weixin_57244464的博客 871

【Android】碎片—动态添加、创建Fragment生命周期、通信

在Fragment中定义一个接口,Activity实现该接口来接收数据。

2301_79977698的博客 1625
上一篇: android之视频直播与播放Vitamio
下一篇: 微信消息提醒与消息数字提示之BadgeView
JSON_ZJS
博客等级 码龄9年 30粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值