Android 初学者入门:Fragment 与 ListView 基础概念与使用方法

1. ListView 定义(1.1)

  • 列表形式显示内容。
  • 根据数据长度自适应显示
  • 使用适配器(Adapter) 将数据绑定到 ListView 视图。

📌 示例:支付宝、淘宝等应用中常见的列表展示方式。


2. 组件调用(1.2)

(1)Activity 调用 Fragment
复制代码
FragmentManager manager = getSupportFragmentManager(); // 管理类
manager.findFragmentById(R.id.leftfragment);
  • 通过 findFragmentById() 获取 Fragment 实例,然后调用其方法。
(2)Fragment 调用 Activity 中的方法
复制代码
MainActivity activity = (MainActivity) getActivity();
// 或者 requireActivity()(内部有空指针检查)
(3)Fragment 之间通信
  • 步骤:
    1. Fragment1 获取其关联的 Activity。
    2. 通过该 Activity 获取另一个 Fragment 的实例。
  • 实现跨 Fragment 数据传递或功能调用。

3. Fragment 定义(2.1)

  • Fragment 是 Activity 中用户界面的一个行为或一部分。
  • 主要用于便于大屏 UI的设计和实现。
  • 可以将 Activity 拆分为几个完全独立封装的可重用组件
  • 每个组件有自己的生命周期UI 布局

✅ 图示说明:

  • 在平板上,Activity A 包含 Fragment A 和 Fragment B,选择一项会更新 Fragment B。
  • 在手机上,Activity A 包含 Fragment A,选择一项会启动 Activity B,其中包含 Fragment B。

4. Fragment 特点(2.2)

01 类似 Activity
  • 包含布局和对应的 Java 代码。
  • 具有自己的生命周期。
  • 可定义和管理自己的布局,处理输入事件。
02 不可独立存在
  • 必须由 Activity 或另一个 Fragment 托管。
  • Fragment 的视图层次结构会成为宿主的一部分。
03 可复用性
  • 将应用细分为多个独立屏幕。
  • 支持在多个 Activity 中重复使用同一个 Fragment。
04 生命周期依赖
  • Fragment 不能脱离 Activity 单独存在。
  • 当 Activity 销毁时,Fragment 一定销毁。

5. Fragment 四个特征(2.3)

  1. 组成关系

    • Fragment 是 Activity 的组成部分。
    • Fragment 可通过 getActivity() 获取所在 Activity。
    • Activity 可通过 FragmentManagerfindFragmentById()findFragmentByTag() 获取 Fragment 实例。
  2. 动态操作

    • 运行时可通过 FragmentManagerremove()replace()add() 方法动态管理 Fragment。
  3. 多对多支持

    • 一个 Activity 可包含多个 Fragment。
    • 一个 Fragment 可在多个 Activity 中重用。
  4. 生命周期依赖性

    • Fragment 不能独立存在,必须嵌入 Activity。
    • Fragment 的生命周期受其所在 Activity 的影响。

✅ 总结核心知识点

类别 关键点
Fragment 是 Activity 的子组件,用于构建可复用 UI 部分,适用于大屏适配。
生命周期 Fragment 生命周期依赖于 Activity,不可独立存在。
托管机制 必须由 Activity 或其他 Fragment 托管。
动态管理 使用 FragmentManager 进行 add/remove/replace 操作。
通信方式 通过 Activity 作为中介进行 Fragment 之间的通信。
ListView 使用 Adapter 绑定数据,自动适配列表长度,常见于商品、菜单等场景。
相关推荐
farewell-Calm18 分钟前
01_Android快速入门
android
helloCat34 分钟前
记录CI/CD自动化上传AppGallery遇到的坑
android·前端·api
WordPress学习笔记1 小时前
wordpress根据页面别名获取该页面的链接
android·wordpress
2501_916007471 小时前
iOS 崩溃日志的分析方法,将崩溃日志与运行过程结合分析
android·ios·小程序·https·uni-app·iphone·webview
浅箬2 小时前
Taro3的H5项目在Android、IOS 中因为兼容性问题导致的白屏问题
android·团队开发·taro
技术摆渡人2 小时前
Android 全栈架构终极指南:从 Linux 内核、Binder 驱动到 Framework 源码实战
android·linux·架构
00后程序员张2 小时前
苹果应用商店上架App流程,签名证书、IPA 校验、上传
android·ios·小程序·https·uni-app·iphone·webview
2501_916007472 小时前
iOS 上架需要哪些准备,围绕证书、描述文件和上传方式等关键环节展开分析
android·ios·小程序·https·uni-app·iphone·webview
QING6182 小时前
Kotlin Flow 的 emit 和 tryEmit 有什么区别 ?
android·kotlin·android jetpack
2501_915106323 小时前
iOS 上架费用解析,哪些成本可以通过流程优化降低。
android·ios·小程序·https·uni-app·iphone·webview