第7章 常用界面模式


第 7 章 · 常用界面模式

章节摘要:单屏技能学到手,该认识工业级的通用模式了。本章讲三件套:AlertDialog 与 DialogFragment 的模态决策、Toolbar 应用栏的导航与动作、RecyclerView 的列表复用机制。猜数字 App 在本章长出"战绩列表页"与"帮助页",完成从 demo 到应用的结构跳跃。

一条主线

App 要变大了:除了主界面,还想要战绩历史与规则帮助。第一个问题是"临时盖在界面上的那层怎么做"——放弃对局要确认,帮助要展示,这就是对话框模式的领地;学会了 DialogFragment 的正规姿势才发现,它本质是"有自己生命周期的迷你界面"。第二个问题是"每页顶上那条栏"——返回、标题、菜单动作,Toolbar 是应用级导航的锚点。第三个问题最重:几十条战绩怎么显示——一个个 TextView 塞进 ScrollView 3.3 节就警告过不行,RecyclerView 的视图复用是答案,也是从"界面拼装"迈向"数据驱动界面"的第一步。三条线共同把"控件思维"升级为"模式思维"。

沿途站点

  • 7.1 对话框 AlertDialog 与 DialogFragment:模态决策的正确容器、Fragment 生命周期与重建恢复、DialogFragment 为什么是正规军。
  • 7.2 Toolbar 顶部应用栏:替换系统默认栏、菜单资源加载、返回导航与动作分流。
  • 7.3 RecyclerView 初体验: Adapter 持有数据、ViewHolder 复用格子、item 布局与点击,三件事组成列表引擎。

拐点与结论

本章最大的换脑在 7.3:前六章都在"为每个控件写 XML",列表的世界观是反过来的——写一个格子模板,让数据流过它。RecyclerView 屏幕上永远只有十来个格子,滑出屏幕的格子被回收、填上新数据再从另一端进场,千条战绩的内存占用和十条几乎一样。理解"复用的是格子不是数据",也就理解了为什么 Adapter 只需回答"一共几条"和"第 i 条塞什么"。另一个落点在 7.1:DialogFragment 不是"更麻烦的 AlertDialog",而是让对话框获得生命周期与旋转重建恢复的正规容器——直接 new AlertDialog 在屏幕旋转时会凭空消失,这个坑的解药就是它。

列表引擎三件套的协作:

读完你应该

  • 能用 DialogFragment 包装 AlertDialog 并在旋转后正确恢复
  • 能配置 Toolbar、加载菜单、区分导航与动作两类按钮
  • 能写出 Adapter 与 ViewHolder 让 RecyclerView 显示数据列表
  • 能解释视图复用机制为什么让千条与十条内存相当
  • 能给列表条目接上点击事件并跳转或弹详情

下一章的接力

App 功能全部就位,最后一章交给工具链:布局编辑器与检查器提效、Logcat 读日志排错、真机与模拟器双轨验证,把"能跑"变成"能查"。

本章知识点清单

可考核条目包括:用 Builder 搭建带正负按钮的 AlertDialog、解释屏幕旋转时裸对话框消失的成因、把对话框装进 DialogFragment 并在重建后恢复、通过安全转换把结果交回宿主、配置 Toolbar 与菜单并用 when 分流动作、说明 ifRoom 与 never 的分发标准、启用返回箭头并声明逻辑父级、写出 item 布局加 ViewHolder 加 Adapter 三件套、解释 onCreateViewHolder 与 onBindViewHolder 的分工、用精确通知更新列表数据。综合自查题:不看资料,从空文件写出一个能显示五条字符串的 RecyclerView——十五分钟内写顺,本章就真正到手了。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U