复习Android之Fragment的酸甜苦辣

Android setMaxLifecycle和BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT浅析 最近公司动荡,我在的项目受大环境影响收益每年下滑,可能要领盒饭了,所以最近都在复习相关基础内容,毕竟小脑袋瓜会忘记以前学过的东西。在ViewPager和Fragment的懒加载中,具体的原理是怎么样的呢?为什么能只执行显示的Fragment的onResume方法?疑问一:设置STARTED后是否执行onResume?那是否能交互?疑问二:FragmentPagerAdapter如果设置STARTED的话,就不会执行到onResume方法,懒加载就无法实现,更没有降级一说? 阅读详情
  1. Fragment是什么?
  2. Fragment的优点
  3. Activity和Fragment的异同?
  4. Fragment的生命周期
  5. 何时会考虑使用Fragment?

Fragment是什么?

Fragment是Android3.0后引入的一个新的API,他出现的初衷是为了适应大屏幕的平板电脑, 当然现在他仍然是平板APP UI设计的宠儿,而且我们普通手机开发也会加入这个Fragment, 我们可以把他看成一个小型的Activity,又称Activity片段!

Fragment的优点

  1. 在基础性能上大幅度提高,并且占用内存降低。
  2. 中低端机上响应速度很快
  3. 以后移植平板,节省大量时间和精力。

Activity和Fragment的异同?

  1. Fragmentactivity 继承自Activity,用来解决android3.0 之前没有Fragment的api,所以在使用的时候需要导入support包,同时继承Fragmentactivity,这样在Activity中就能嵌入Fragment来实现你想要的布局效果。
  2. Activity 代表了一个屏幕的主体,而Fragment可以作为Activity的一个组成元素。
  3. 一个Activity可以有若干个(0或n)Fragment构成。你可以把Fragment想象成Activity中的一个控件,只不过相对于一般控件,Fragment与Activity联系更为紧密,随着Activity的生命周期变化,Fragment也随之相应不同的生命周期函数。
  4. Fragment不能脱离Activity而存在,只有Activity才能作为接收intent的载体。其实两者基本上是载体和组成元素的关系。

Fragment的生命周期

在这里插入图片描述

onAttach():当Activity和Fragment建立关联的时候调用。
onCreate():初始化Fragment,可通过参数savedInstanceState获取之前保存的值。
onCreateView(): 初始化Fragment的布局,不建议执行耗时的操作。
onActivityCreate(): 此时,Fragment绑定的Activity的onCreate方法已经执行完成并返回,在该方法内可以进行与Activity交互的UI操作,所以在该方法之前Activity的onCreate方法并未执行完成。
onStart(): 此时,Fragment由不可见变为可见状态。
onResume():此时,Fragment处于活动状态,用户可与之交互。
onPause():此时,Fragment处于暂停状态,但依然可见,用户不能与之交互。
onStop(): 此时,Fragment完全不可见。
onDestroyView(): 此时,销毁与Fragment有关的视图,但未与Activity解除绑定,依然可以通过onCreateView方法重新创建视图。通常在ViewPager+Fragment的方式下会调用此方法。
onDestroy(): 此时,销毁Fragment。通常按Back键退出或者Fragment被回收时调用此方法。
onDetach(): 此时,解除与Activity的绑定,在onDestroy方法之后调用。

何时会考虑使用Fragment?

个人建议:

  1. 适配不同的设备上比如手机和平板。
  2. 主页tab都是用Fragment,类似的一个页面下有多个布局需要切换的时候感觉用Fragment很方便。
  3. 用户注册登录功能,现在项目中就是这样用的。
  4. …
安卓大学生期末复习总结 菜单资源文件必须放在res/menu目录中。要使用这些资源,可以调用Resources.openRawResource(),参数是资源的ID也可以用,即R.raw.somefilename,Resources.getRawResource()方法可以获得这些资源。场景:一般用于程序主界面,利用清空activity的特性,比如你在应用内,打开了多个界面,触发了某个操作后都需要跳转到首页,设置了singleTask之后,就直接启动主页就好,会把之前打开的全部关掉(免得你手动一个一个关闭activity) 阅读详情

相关推荐

Android复习资料——Android知识点汇总

(一) 接触 Android 开发也有一段时间了,前段时间便开始想抽空整理一些知识点,通过笔记整理的方式减少自己重复学习的时间成本和提高自身的效率。 目前先是总结了部分 Android 的知识点,这就是本文的主要分享内容。想特意申明的一点是,这个总结更多的是从本人自己的编程基础和侧重点出发,所以在内容上会有选择性的忽略以及侧重点,参考的博客和图文有很多,没办法一一列出,如果有引用不当的部分会立即删...

1518

Android开发-Fragment JsonObject JsonArray 综合运用-AndroidStudio

Json内容如下: http://125.208.12.227/appceshi/Api [{"id":"1","renwu":"\u6c88\u9633-\u5317\u4eac"},{"id":"2","renwu":"\u5317\u4eac-\u897f\u5b89"}] http://125.208.12.227/appceshi/Api/index/che/pid/1

iwanghang(一个播音与主持艺术专业、干过网游打金工作室,做过海鲜小吃排挡的新手程序员) 2289

Android期末复习课件完整指南

Android系统架构可以被分为四个层次:Linux内核、系统库和Android运行时、应用框架、以及应用程序。Linux内核作为基石,负责硬件抽象、安全性、内存管理等核心功能。系统库和Android运行时提供各种核心服务,比如Web浏览器引擎、SQLite数据库等。应用框架通过定义各种API使得开发者能够构建丰富的应用。最顶层则是由各种应用程序组成,包括拨号器、联系人、短信程序等。

weixin_36487018的博客 752

复习Android——Fragment

Fragment是什么 Fragment是一种可以嵌入在Activity中的UI片段,它可以让程序更加合理和充分地利用大屏幕的空间。 使用Fragment 声明两个Fragment的布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"

qq_40462579的博客 337

微信小程序 实现拼图功能

微信小程序 实现碎片拼图

weixin_45689786的博客 2250

具身智能与空天具身智能:从理论到实践的跨领域融合

本文深入探讨了具身智能从理论到实践的发展,重点分析了空天具身智能这一前沿领域。文章阐述了如何为AI赋予“身体”,使其通过与环境实时交互进化智能,并详细拆解了构建空天智能体所需的核心技术模块,包括多模态感知、基于大模型的决策规划以及鲁棒控制。同时,结合山区电力线自主巡检等实战案例,展望了多智能体协同与标准化等未来方向。

weixin_29045585的博客 532

【Android知识复习总结】Fragment2

fragment

weixin_44948004的博客 2355

西门子S7-1200与S7-200SMART的PROFINET通讯实战:从GSD文件生成到数据监控

本文详细解析了西门子S7-1200与S7-200SMART之间实现PROFINET通讯的完整实战流程。核心内容包括将S7-200SMART配置为智能IO设备、生成并安装GSD文件、在TIA Portal中进行网络组态与地址映射,最终实现双向数据交换与监控。该方案为整合新旧设备、构建灵活高效的工业自动化系统提供了可靠路径。

weixin_29271263的博客 246

Android复习——Fragment

碎片碎片使用方式大致流程动态添加碎片碎片模拟返回栈通信碎片生命周期生命周期:3c 2d动态加载布局的技巧限定符:实践面试[参考](https://www.jianshu.com/p/efe5e7bc7bef) 碎片使用方式 大致流程 1.先写碎片的布局 2.写类 extends fragment 1.重写方法oncreateView 1.类中加载1的布局 3.在父布局中调用碎片 动态添加碎片 (一个布局为空,通过代码往里面放一个碎片) 看例子,将右边碎片换成另外一个碎片 FragmentManager ma

伊懿的博客 248

生态学家都在用的MixSIAR:用R语言搞定稳定同位素混合模型(从数据整理到结果解读)

本文详细介绍了生态学家常用的MixSIAR工具,通过R语言实现稳定同位素混合模型分析,从数据整理到结果解读全流程。文章涵盖环境准备、模型构建、参数设置、运行诊断及可视化等关键步骤,帮助研究者科学分析河口鱼类食物来源,适用于生态学研究和湿地保护政策制定。

weixin_28683065的博客 437

45.qt quick-qml虚拟软键盘详解(一)

1.qml虚拟键盘介绍 Qt虚拟键盘的主要功能包括: 可定制的键盘布局和风格与动态切换。 带有单词选择的预测性文本输入。 角色预览和替代角色视图。 自动大小写和空格插入。 不同分辨率的可伸缩性。 支持不同的字符集(拉丁,简体/繁体中文,印地语,日语,阿拉伯语,希伯来语,韩语和其他)。 支持大多数常见的输入语言,可以轻松扩展语言支持。 从左到右和从右到左的输入。 硬件键支持2路和5路导航。 手写支持,带有全屏输入的手势。 音频反馈。 跨平台功能。 支持多国语言,高达40多个语言 本

抵抗时间扭曲,坚持做一件有意义的事 3560

Fragment的通信,Android开发者面试如何系统复习

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。最后我想说:对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,,由于篇幅有限,这里以图片的形式给大家展示一部分。//第一步:定义接口。

2401_84149213的博客 691

编织数据的实时脉络——构建基于MySQL的数据编织平台,实现实时数据治理

除了上述基本设置外,我们还可以根据实际应用场景自定义一些特定的监控项目。例如,对于某些高并发读写的表,可能需要特别关注它们的锁等待时间和回滚段使用率;而对于涉及到跨库关联查询的操作,则应当着重检查网络延迟及缓存命中率等因素。-- 获取InnoDB行级锁等待情况-- 统计各表的缓存命中率这段SQL脚本不仅展示了如何查询InnoDB引擎下的锁争用状况,还介绍了计算表级别缓存命中率的方法,有助于深入理解系统的运行状态。

墨夶的博客 1789

Android 复习 3 有关于fragment Activity 生命周期

fragment最初认识fragment 是说为了解决平板屏幕大,一个屏幕上可以展示不同的内容 看起来像是多个板块;多个板块互相不干涉,就像是网页的div 一样 ;fragment 碎片 可以认为是一种控件,和button什么的一样; 所以他是可以添加到acivtity上 比如 定义left_fragment.xml 和 right_fragment.xml后,我们可以直接在mainacivity

墨 459

5分钟用AI搞定顶刊级引言!掌握三段式结构+避坑要点,让你的Introduction更有说服力(附提示词)

说明你是怎么来填补这个缺口的,一句话概括你的研究,再简述你采用了什么新方法、新模型或新视角,也就是创新点,最后说明你的方案是怎么克服第二段提到的缺口的,带来了哪些贡献,注意要确保方案与第二段提到的缺口一一对应。以上三段式引言模板,是非常经典的问题导向型结构,相比传统的结构,这种结构更能吸引是审稿人的注意,希望这篇分享的模板能给在你写论文引言时,提供一点帮助。上一段写好后,就在前人研究的基础上,亮出自己的方案,借助AI说明自己的研究,用了什么新方法/框架/理论/视角来填补这个缺口的。

智能AI让学术科研更容易 745

39-Halcon-- fit_primitives_object_model_3d函数功能(从3D数据中提取几何基元)

Halcon算子fit_primitives_object_model_3d工业应用精要 该算子专为3D几何特征提取设计,支持平面、球体、圆柱等基元拟合。核心优势: 参数化输出:返回几何元素的数学参数(如平面方程、球心半径) 智能控制:通过max_dist、min_size等参数调节拟合精度 工业场景适配:针对薄壁件、孔系等提供专用优化方案 典型应用流程: 数据预处理(点云降噪/采样) 基元类型与参数设置 多阶段拟合(先平面后圆柱) 几何精度验证 误差控制在0.1%-1.2%范围内(视点云密度而定),适用于

weixin_45590420的博客 1161

【Android知识复习总结】Fragment1

fragment

weixin_44948004的博客 1817

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

android面试之fragment,Android面试题之Fragment篇

Fragment篇 前言Fragment1.如何切换 fragement(不重新实例化)2.Fragment 的的优点3.Fragment 如何实现类似 Activity 栈的压栈和出栈效果4.Fragment 的 replace 和 add 方法的区别5.Fragment与Activity之间是如何传值的6.Fragment生命周期7.ViewPager对Fragment生命周期的影响关于整理问...

weixin_35980011的博客 226

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Android 复习6 fragment argument

这个传递真的是好难懂啊首先我们先来看一看参与人员1 firstactivity 2 seconactivity 3 firstfragment过程是这样的:secondactivity 向firstactivity 跳转 有个intent 。intent里面可以携带数据啊;在intent.putExtra() 方法中我们传入一个键值对获取方法有两种1键值都在 firstfragment中获取 但

墨 440

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【Android知识复习总结】Fragment3

【Android知识复习总结】Fragment3

weixin_44948004的博客 2397

android复习路之fragment篇

1.fragment的生命周期必须依附于activity:                                2.fragment依附于activity的的生命周期图: 3.fragment各个函数的用法: 3.1 on attach:与窗口关联后就可以调用,可以通过Fragment.getActivity方法获取窗口,但fragment没有初始化不能进行操作。

on_mytg_way的博客 272

Android复习(Fragment用法)

好久没有写过博客了,最近都在完善自己的第一个Project,研究Material Design的控件,花了很长时间,回头看一下很久前看过的东西,大多都忘了,理解不够深 复习Fragment中遇到的问题 在布局中使用<fragment>时不设置id的话logcat会提示下面的错误(即使id没有被引用) android.view.InflateException: Binary XML file lin

KuangHusing的博客 398

Android复习笔记(4)-fragment

1. 静态添加fragment Android中的fragment类似于activity,但是依附于fragment,拥有自己的布局,通过新建fragment类继承fragment,然后实现oncreateView方法,来加载fragment内的布局,oncreateview方法接受三个参数,第一个参数是layoutinflater对象,我们通过调用layoutinflater的inflate方法...

thankYouLikeMe的博客 328

2024年安卓最新Android Fragment 使用解析,头条面试一定会有作业吗

Fragment是依赖于Activity的,不能独立存在的。一个Activity里可以有多个Fragment。一个Fragment可以被多个Activity重用。Fragment有自己的生命周期,并能接收输入事件。我们能在Activity运行时动态地添加或删除Fragment。考虑到文章的篇幅问题,我把这些问题和答案以及我多年面试所遇到的问题和一些面试资料做成了PDF文档网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

2301_82243523的博客 507

Android 保存 Fragment 引用及 getActivity() 为空问题

有时我们希望在 Activity 中保存所创建的 Fragment 的引用, 以便后续逻辑中做界面更新等操作. 如果页面中的 Fragment 都是静态的 (不会被 remove, hide 等), 则一般不会出啥问题. 如果是多个 Fragment 切换的场景, 就容易出现 getActivity() 为 null 等问题. 这种问题在使用 FragmentPagerAdapter 时尤其容易出现.

What a Chance to Learn 5549

android基础知识复习(Activity及Fragment)

前一段时间完成了我的人生大事,Abp相关系列会暂时停止更新一段时间,准备趁着刚开始这段时间,复习一下android相关的基础知识,相关知识就以问题的方式记录下来,具体问题参考了厘米姑娘的相关博客。 Activity的生命周期onCreate表示Activity正在创建,常做一些初始化工作,比如setContentView界面资源,初始化数据等。onStart表示Activity...

war3ismylove的博客 324
上一篇: LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to bitbucket.org:443
下一篇: onNewIntent()调用时机?singleTop和singleTask的区别以及应用场景?
jhonjson
博客等级 码龄11年 220粉丝 195原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值