ANDROIDX / COMPOSE / MATERIAL 3
AndroidX 源码指南
从 AndroidX 实际源码出发,理解并正确使用 Compose Material 3 Expressive 与整个 AndroidX 库族。
SOURCE-FIRST · 第一版
不是猜 API,
而是顺着源码学 M3E。
这里解释 Material 3 Expressive 到底改变了什么、哪些能力会自动生效、哪些组件仍需显式传参,并把每个结论对应到你本地 AndroidX 源码。
源码基线androidx-main · b87c4606310
检查日期 2026-07-31
检查日期 2026-07-31
Material 3 版本1.5.0-alpha25
来自 libraryversions.toml
来自 libraryversions.toml
验证边界API 与示例已对照源码
设备运行效果待人工验证
设备运行效果待人工验证
先建立正确认识
M3E 不是一个叫 expressive = true 的总开关。源码实际提供的是一组相互配合的能力:主题默认值、运动规格、形状变化、新尺寸与新组件。
主题入口
MaterialExpressiveTheme 默认注入哪些值?
按钮形变
为什么普通 Button 不会自动变形?
图标按钮
按下与选中状态如何切换形状?
运动系统
不会写动画,也能先正确使用 MotionScheme。
已覆盖的组件
ToggleButton
三个形状、两种选择状态,搞清楚状态由谁管理。
ButtonGroup
按压宽度联动、连接形状与空间不足时的溢出菜单。
LoadingIndicator
确定与不确定进度、contained 版本和自定义 polygon。
FloatingActionButton
尺寸、Extended 展开收起和跟随滚动显示隐藏。
目前已经贯通:依赖 → 主题 → 运动 → 操作与选择 → 反馈与输入 → 导航与容器。本地 catalog 中标记为 Expressive 的组件分类已经全部建立页面,完整范围见 M3E 覆盖清单。
从 M3E 扩展到整个 AndroidX
这个站点最终不只介绍 Material 3。下一层目录会沿用同一套“版本 → public API → commonMain/平台实现 → 官方 sample”的方法,覆盖 Activity、Lifecycle、Navigation、Room、DataStore、WorkManager、Paging、Camera、Compose 等模块。
内容原则:代码片段优先取自 AndroidX 的 public API、commonMain 实现和 samples。推断会单独标注,不把“源码存在”写成“已在你的设备上运行成功”。