第6章 样式与主题系统


第 6 章 · 样式与主题系统

章节摘要:界面的"长相"不该散落在每个 XML 里。本章认识 res 资源目录的组织法则,走完从 Style 到 Theme 的复用阶梯,再把颜色与尺寸资源化统一管理。猜数字 App 在本章从"能用"升级为"有品",也学会夜间模式与多主题的钥匙。

一条主线

功能齐了、事件通了,但 App 还是"系统默认款":按钮一个灰、标题一个黑,改个主色要全文搜索替换十几处。化妆的第一步不是挑口红,是建化妆台——res 目录下 drawable、values、mipmap 各有编制,资源该进哪个抽屉有硬规矩;第二步把重复的属性收拢成 Style,一处定义处处引用;第三步发现 Style 只管单个控件,整套界面的底色氛围需要 Theme 出场;最后把颜色数字、尺寸魔法数请出代码,请进 colors.xml 与 dimens.xml。四步走完,换主题、适配夜间模式、统一改版,都从"全文件大搜捕"变成"改一处"。

沿途站点

  • 6.1 res 资源目录全景:目录即分类、文件名即 id、 qualifiers 按环境切换,三句话读懂整个资源体系。
  • 6.2 从 Style 到 Theme 的复用阶梯:Style 收拢控件属性,Theme 定义全局氛围,overlay 做局部变体。
  • 6.3 colors 与 dimens 资源化实践:颜色语义化命名、尺寸分层管理,魔法数的彻底清剿。

拐点与结论

本章的认知升级有两级。第一级在 6.2:Style 与 Theme 是同一个东西的两种用法——都是属性键值集合,作用在控件上是 Style,作用在 Activity 或 Application 上下文上是 Theme;分清"引用一个样式"与"声明一个主题"就不会在两个 XML 里迷路。第二级在 6.3:颜色命名要描述用途而不是描述色值——colorPrimary 是好名字,colorBlue500 是坏名字,因为主题换成红色系那天,坏名字会变成谎言。这两个命名观贯穿所有资源化实践。

从属性散落到处处复用的阶梯:

读完你应该

  • 能说出 res 各子目录的职责与资源 id 的生成规则
  • 能写一个 Style 并在控件上引用,能解释 parent 继承链
  • 能区分 Theme 与 Style,为 Activity 配主题并说明 overlay 的适用场景
  • 能用语义化颜色名组织 colors.xml,用 dimens 分层管理尺寸
  • 能配置 values-night 实现基础夜间模式

下一章的接力

单屏 App 到此已是成品,但真实应用要多页面、多场景。第 7 章进入模式车间:对话框、Toolbar 应用栏与列表神器 RecyclerView,把散装技能组装成通用界面模式。

本章知识点清单

可考核条目包括:说出 res 各子目录职责与三句组织法则、解释资源 id 的编译期检查与命名禁令、写出带 parent 的 Style 并在控件上引用、区分 Style 与 Theme 并说明 ?attr 引用的间接性、用 ContextThemeWrapper 实现 overlay 局部变体、配置 values-night 实现夜间换肤、按用途语义化命名颜色、用 4 的倍数组织间距令牌、判断一个数值该不该提升为令牌。综合自查:给现有项目做一次"令牌化审计"——列出所有硬编码颜色与尺寸,各挑三个改造成资源引用,改完再切换一次深色模式看效果。走完这一遍,"长相"在你的项目里就再也不是散养的了。

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