Fragments怎么使用才正确,Android Fragment生命周期如何管理?

Android Fragments 详解指南

Fragment(碎片) 是 Android 开发中的一个核心组件,它可以被视为 Activity 界面中的一个“模块化部分”,Fragment 具有自己的生命周期,并且可以被添加到 Activity 中,也可以从其中移除。

为什么需要 Fragment?

Fragment 的引入主要是为了解决屏幕适配和界面复用的问题:

Android零基础入门到精通之Fragment的使用方法
加载中
Android零基础入门到精通之Fragment的使用方法
  • 多面板布局:在平板电脑等大屏设备上,可以在一个界面显示两个 Fragment(如左侧列表,右侧详情);而在手机上则将它们分为两个独立的 Activity。
  • 模块化开发:将复杂的界面拆分成多个独立的部分,提高代码的可维护性和可复用性。
  • 动态界面管理:可以在运行时动态地添加、删除或替换界面内容,而无需重启整个 Activity。

Fragment 的生命周期

Fragment 的生命周期与 Activity 紧密相关,但它有自己的特有状态,重点关注以下阶段:

  • onAttach()

    Fragments怎么使用才正确,Android Fragment生命周期如何管理?

    :Fragment 与 Activity 建立关联。

  • onCreate():初始化 Fragment(不涉及 UI)。
  • onCreateView():关键步骤,在此方法中加载 XML 布局并返回 View 实例。
  • onViewCreated():View 创建完成后调用,适合在此进行 findViewById 或设置监听器。
  • onPause() / onStop():用户离开 Fragment 时调用。
  • onDestroyView():Fragment 的视图被销毁,但 Fragment 实例仍然存在。
  • onDetach():Fragment 与 Activity 完全脱离。

如何使用 Fragment

1 静态添加(通过 XML)

直接在 Activity 的布局文件中使用 <fragment> 或 FragmentContainerView 标签,这种方式在编译时就确定了,无法在运行时动态更改。

2 动态添加(通过代码)

这是最常用的方式,通过 FragmentManager 和 FragmentTransaction 来实现。

  • 核心步骤:
    1. 在布局中定义一个容器(如

      Fragments怎么使用才正确,Android Fragment生命周期如何管理?

      FrameLayout)。

    2. 获取 supportFragmentManager。
    3. 开启事务 beginTransaction()。
    4. 调用 replace() 或 add()。
    5. 调用 commit() 提交更改。

代码示例:

val fragment = HomeFragment()
supportFragmentManager.beginTransaction()
    .replace(R.id.fragment_container, fragment)
    .addToBackStack(null) // 将操作添加到返回栈,点击返回键可回退
    .commit()

Fragment 之间的通信

Fragment 不应该直接互相调用,因为这会造成强耦合,推荐以下三种通信方式:

  • ViewModel (推荐):使用 Activity 范围的 ViewModel,两个 Fragment 共享同一个 ViewModel 实例,通过 LiveData 或 StateFlow 观察数据变化。
  • Fragment Result API:适用于简单的单向数据传递,使用 setFragmentResult 发送结果,setFragmentResultListener

    Fragments怎么使用才正确,Android Fragment生命周期如何管理?

    接收结果。

  • 接口回调 (传统方式):Fragment 定义一个接口,由 Activity 实现该接口,再通过接口将数据传递给另一个 Fragment。

最佳实践与注意事项

  • 使用 FragmentContainerView:相比于 FrameLayout,FragmentContainerView 能够更好地处理 Fragment 的生命周期和动画。
  • 避免在 Fragment 中持有 View 的强引用:在 onDestroyView() 中将 View 绑定(如 Binding 类)置为 null,防止内存泄漏。
  • 优先使用 Navigation 组件:对于复杂的页面跳转,建议使用 Jetpack Navigation 库,它将 Fragment 的跳转逻辑可视化,并简化了 FragmentManager 的操作。
  • 区分 add() 和 replace():
    • add():将新 Fragment 叠加在旧 Fragment 之上,旧的仍处于 RESUMED 状态。
    • replace():先移除旧的,再添加新的,旧的会执行 onDestroyView。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/fragments%e6%80%8e%e4%b9%88%e4%bd%bf%e7%94%a8%e6%89%8d%e6%ad%a3%e7%a1%ae%ef%bc%8candroid-fragment%e7%94%9f%e5%91%bd%e5%91%a8%e6%9c%9f%e5%a6%82%e4%bd%95%e7%ae%a1%e7%90%86%ef%bc%9f/

赞 (0)
服务器发送给客户端的线程休眠怎么实现,Socket通信线程休眠怎么写?
上一篇 2026年7月12日 16:26
如何查找Linux Shell CHM手册,Linux怎么打开chm文件?
下一篇 2026年7月12日 16:27

相关推荐

  • 发优惠信息短信的便宜平台都有哪些,哪个平台最便宜?

    发优惠信息短信的便宜平台,核心在于选择按量付费、通道稳定且提供免费测试的SaaS服务商,如云片、乐信、秒赛、聚推等,但需根据实际发送量、地域需求对比套餐,同时关注到达率及售后服务,切忌只看单价忽略隐藏成本,发优惠信息短信哪个平台便宜:价格对比关键点不同平台价格差异主要源于结算模式和通道成本,据统计,目前主流平台……

    2026年7月24日
    300
  • Flowable工作流引擎怎么用?Flowable工作流引擎入门教程

    Flowable 是一个轻量级、高性能的 BPMN(业务流程建模符号) 和 CMMN(案例管理模型与符号) 引擎,它最初是从 Activiti 项目中衍生出来的,由 Activiti 的核心团队成员 Tom Baeyens 和 Joram Barrez 创建,以下是关于 Flowable 的核心要点介绍:核心特……

    AI资讯 2026年7月10日
    8100
  • 服务器搭建要注意哪些坑?服务器搭建注意事项有哪些

    服务器搭建的核心在于安全配置、性能优化与合规备案的平衡,建议优先选择国内合规云服务商并完成ICP备案,以保障业务稳定与访问速度,搭建服务器并非简单的点击购买,而是一场涉及技术架构、法律合规与成本控制的综合工程,许多新手往往在初始化阶段忽视基础安全设置,导致后期运维成本激增,业内专家指出,前期投入在安全加固上的时……

    2026年7月12日
    9800
  • 大模型会抢走工作吗,人工智能时代就业趋势分析

    大模型并非单纯取代人类,而是通过重构工作流,让掌握AI工具的人淘汰不懂AI的人,就业市场正从“技能本位”转向“提示词与判断力本位”,大模型的就业影响:岗位重塑而非简单替代过去几年,关于人工智能是否会导致大规模失业的争论从未停歇,业内专家指出,技术变革的历史表明,新技术往往先摧毁旧岗位,再创造新需求,但大模型(L……

    2026年6月20日
    3900
  • 服务器被多个IP攻击怎么防御,攻击原因有哪些?

    防御多IP攻击的核心在于构建多层防护体系,包括流量清洗、IP封禁、高防服务器和CDN加速,并建立实时监控与应急响应机制,攻击者利用大量IP发起请求,目的同样是耗尽你的服务器资源,但形式更多样,下面从攻击识别、防御策略、应急处理到方案选择,逐一拆解,服务器被多个IP攻击如何防御?先看懂攻击类型在动手防御之前,先判……

    2026年7月22日
    1900
  • 大模型部署业务连续性如何保障?高可用架构设计

    大模型部署业务连续性的核心在于构建“多活容灾+动态路由+本地降级”的立体防御体系,确保在云端服务中断或延迟飙升时,业务能无缝切换至备用节点或本地轻量模型,实现零感知故障,在2026年的企业级AI落地场景中,大模型已不再是单纯的聊天机器人,而是深入到了核心生产流程,一旦推理服务中断,造成的直接经济损失和品牌信任危……

    2026年6月18日
    2300
  • 长虹ai大模型壁画值得买吗,长虹ai大模型壁画参数详解

    长虹AI大模型壁画并非简单的装饰画,而是将AI生成技术与传统壁画工艺深度融合的智能家居交互终端,它通过实时语义理解与场景自适应,解决了传统壁画静态、无互动的痛点,成为2026年高端家居与商业空间升级的核心选择,长虹AI大模型壁画的核心技术逻辑与体验差异从“静态装饰”到“动态生命体”的跨越传统壁画最大的局限在于其……

    2026年6月13日
    2800
  • 大模型部署客户端开发难吗?大模型部署需要哪些技术

    大模型部署客户端开发的核心在于构建低延迟、高并发且具备本地隐私保护能力的边缘推理架构,通过量化技术与模型压缩算法,在资源受限的设备上实现接近云端的服务体验,随着生成式人工智能从云端向边缘侧迁移,开发者面临的挑战已从单纯的“模型训练”转向“模型落地”,传统的云端部署模式虽然算力充足,但高昂的带宽成本和数据隐私顾虑……

    2026年6月18日
    2900
  • 小米AI大模型图片生成效果如何?小米自研大模型最新进展

    小米在2026年已全面打通端侧AI大模型与云端算力,其图片AI大模型核心优势在于“小爱视觉”的深度集成,实现了从单纯识别到语义理解、创意生成的跨越,且完全免费内置于小米15系列及后续旗舰机型中,随着人工智能技术从云端向终端下沉,手机影像的处理逻辑发生了根本性改变,过去我们依赖的是算法对像素的简单拼接,而现在,小……

    2026年6月13日
    8700
  • 大模型如何领域适应?大模型领域适应Domain Adaptation方法

    大模型的领域适应(Domain Adaptation)本质是通过微调或提示工程,将通用大模型转化为特定行业专家,以解决通用模型在垂直场景下专业性不足、幻觉率高及数据隐私泄露的核心痛点,在2026年的今天,企业级AI应用早已跨越了“能用”的阶段,进入了“好用”和“专用”的深水区,通用大模型虽然博学,但在面对医疗诊……

    2026年6月21日
    2100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注