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 绑定数据,自动适配列表长度,常见于商品、菜单等场景。
相关推荐
工程师老罗14 小时前
如何在Android工程中配置NDK版本
android
Libraeking18 小时前
破壁行动:在旧项目中丝滑嵌入 Compose(混合开发实战)
android·经验分享·android jetpack
市场部需要一个软件开发岗位18 小时前
JAVA开发常见安全问题:Cookie 中明文存储用户名、密码
android·java·安全
JMchen12320 小时前
Android后台服务与网络保活:WorkManager的实战应用
android·java·网络·kotlin·php·android-studio
crmscs21 小时前
剪映永久解锁版/电脑版永久会员VIP/安卓SVIP手机永久版下载
android·智能手机·电脑
localbob21 小时前
杀戮尖塔 v6 MOD整合版(Slay the Spire)安卓+PC端免安装中文版分享 卡牌肉鸽神作!杀戮尖塔中文版,电脑和手机都能玩!杀戮尖塔.exe 杀戮尖塔.apk
android·杀戮尖塔apk·杀戮尖塔exe·游戏分享
机建狂魔21 小时前
手机秒变电影机:Blackmagic Camera + LUT滤镜包的专业级视频解决方案
android·拍照·摄影·lut滤镜·拍摄·摄像·录像
hudawei99621 小时前
flutter和Android动画的对比
android·flutter·动画
lxysbly1 天前
md模拟器安卓版带金手指2026
android
儿歌八万首1 天前
硬核春节:用 Compose 打造“赛博鞭炮”
android·kotlin·compose·春节