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 绑定数据,自动适配列表长度,常见于商品、菜单等场景。
相关推荐
习惯就好zz21 分钟前
[Android/Linux] 实战记录:利用 Kconfig 精确控制 i.MX8MM 特定 DTB 的编译生成
android·linux·dts·dtb·lunch·多卡板配置
踏雪羽翼1 小时前
android 解决混淆导致AGPBI: {“kind“:“error“,“text“:“Type a.a is defined multiple times
android·java·开发语言·混淆·混淆打包出现a.a
csj501 小时前
安卓基础之《(21)—高级控件(3)翻页类视图》
android
2501_915918411 小时前
中小团队发布,跨平台 iOS 上架,证书、描述文件创建管理,测试分发一体化方案
android·ios·小程序·https·uni-app·iphone·webview
betazhou2 小时前
MySQL相关性能查询语句
android·数据库·mysql
一起养小猫2 小时前
Flutter for OpenHarmony 进阶:Timer组件与倒计时系统深度解析
android·网络·笔记·flutter·json·harmonyos
符哥20082 小时前
Fastjson2.X 使用详解
android·java
月明泉清2 小时前
Android中对于点击事件的深度梳理(三)
android
电饭叔2 小时前
DataFrame和 Series 索引
android·python
lexiangqicheng2 小时前
【全网最全】React Native 安卓原生工程结构与构建机制深度解析
android·react native·react.js