组件总表
按真实业务场景与使用频率汇总 Material 3 / Foundation 常用组件。先扫「常用」,「偶尔」按需点进分讲或官网。
常用业务页几乎天天写
偶尔特定场景再用
怎么读:点「分讲」进正文锚点;同系变体合并一行。不是官方全量 API 百科,而是落地选型表。
布局
| 组件 | 频率 | 一句话 | XML 近似 | 分讲 |
Column | 常用 | 竖排 | LinearLayout vertical | 布局 |
Row | 常用 | 横排 | LinearLayout horizontal | 布局 |
Box | 常用 | 叠放 / 角标底 | FrameLayout | 布局 |
Spacer | 常用 | 占位空白 | 固定尺寸空 View | 基础 |
FlowRow / FlowColumn | 偶尔 | 自动换行流式排 | Flexbox / Chip 组 | 布局·选型 |
BoxWithConstraints | 偶尔 | 按可用宽高分支 UI | 自己量宽 | 布局 |
ConstraintLayout | 偶尔 | 复杂相对约束 | ConstraintLayout | 布局·选型 |
列表 · 分页 · 轮播
| 组件 | 频率 | 一句话 | XML 近似 | 分讲 |
LazyColumn | 常用 | 纵向长列表 | RecyclerView | 列表 |
LazyRow | 常用 | 横向滑动条 | 横向 RecyclerView | 列表 |
LazyVerticalGrid / LazyHorizontalGrid | 常用 | 网格商品墙 | GridLayoutManager | 列表 |
items + key / stickyHeader | 常用 | 列表项与粘性头 | Adapter + sticky | 列表 |
PullToRefreshBox | 常用 | 下拉刷新 | SwipeRefreshLayout | 列表 |
自定义 indicator / PullToRefreshState | 偶尔 | 品牌下拉动画 | 自定义 Header | 列表 |
PagingSource + Pager | 常用 | 按页向接口要数据 | Paging 3 同源 | 列表 |
Paging + LazyPagingItems | 常用 | 列表收集分页 | PagingDataAdapter | 列表 |
RemoteMediator | 偶尔 | 网络写 Room 再分页 | 边界回调 + DB | 列表 |
HorizontalPager / VerticalPager | 常用 | Banner / 引导页 | ViewPager2 | 列表 |
LazyVerticalStaggeredGrid | 偶尔 | 瀑布流 | StaggeredGrid | 列表 |
展示
| 组件 | 频率 | 一句话 | XML 近似 | 分讲 |
Text | 常用 | 文本 | TextView | 基础 |
Icon | 常用 | 矢量图标 | ImageView + vector | 基础 |
Image | 常用 | 本地 / 资源图 | ImageView | 基础 |
AsyncImage(Coil) | 常用 | 网络图 | Glide/Coil + ImageView | 基础 |
HorizontalDivider / VerticalDivider | 常用 | 分隔线 | 1dp View | 基础 |
CircularProgressIndicator | 常用 | 圆形加载 | ProgressBar indeterminate | 基础 |
LinearProgressIndicator | 常用 | 线性进度 | ProgressBar horizontal | 基础 |
Badge / BadgedBox | 偶尔 | 角标数字 | 角标 View | 结构 |
| 组件 | 频率 | 一句话 | XML 近似 | 分讲 |
Button / FilledTonalButton | 常用 | 主按钮 / 次强调 | Button | 基础 |
OutlinedButton / TextButton | 常用 | 描边 / 文字按钮 | borderless Button | 基础 |
IconButton / IconToggleButton | 常用 | 图标点击 | ImageButton | 基础 |
FloatingActionButton / ExtendedFAB | 常用 | 悬浮主操作 | FAB | 结构 |
OutlinedTextField / TextField | 常用 | 受控输入 | EditText | 基础 |
Switch | 常用 | 开关 | Switch | 基础 |
Checkbox | 常用 | 多选 | CheckBox | 基础 |
RadioButton | 常用 | 单选 | RadioButton | 基础 |
Slider / RangeSlider | 偶尔 | 滑动取值 | SeekBar | 基础 |
FilterChip / AssistChip / InputChip / SuggestionChip | 常用 | 筛选 / 标签 | Chip | 基础 |
DropdownMenu / ExposedDropdownMenuBox | 常用 | 下拉菜单 / 可搜下拉 | PopupMenu / Spinner | 基础 |
SegmentedButton | 偶尔 | 分段单选 | ToggleGroup | 基础 |
SearchBar / DockedSearchBar | 偶尔 | 搜索栏 | SearchView | 基础 |
DatePicker / DatePickerDialog / TimePicker | 偶尔 | 日期时间 | DatePickerDialog | 结构 |
结构 · 容器 · 提示
| 组件 | 频率 | 一句话 | XML 近似 | 分讲 |
Scaffold | 常用 | 页面壳(顶/底/FAB/Snackbar) | Coordinator + AppBar | 结构 |
Surface | 常用 | 材质底 + 点击涟漪 | 带背景的容器 | 结构 |
Card / ElevatedCard / OutlinedCard | 常用 | 卡片容器 | CardView | 结构 |
TopAppBar / CenterAligned / Medium / Large | 常用 | 顶栏 | Toolbar / AppBarLayout | 结构 |
BottomAppBar | 偶尔 | 底操作栏 | BottomAppBar | 结构 |
NavigationBar + NavigationBarItem | 常用 | 底部导航 | BottomNavigationView | 结构 |
NavigationRail | 偶尔 | 平板侧轨导航 | NavigationRail | 结构 |
ModalNavigationDrawer / PermanentNavigationDrawer | 偶尔 | 抽屉导航 | DrawerLayout | 结构 |
TabRow / ScrollableTabRow + Tab | 常用 | 页内页签(不进返回栈) | TabLayout | 导航 |
AlertDialog / BasicAlertDialog | 常用 | 对话框 | AlertDialog | 结构 |
ModalBottomSheet | 常用 | 模态半屏 | BottomSheetDialog | 结构 |
BottomSheetScaffold | 偶尔 | 常驻可拖半屏 | BottomSheetBehavior | 结构 |
Snackbar + SnackbarHost | 常用 | 轻提示 | Snackbar | 结构 |
Tooltip / PlainTooltip / RichTooltip | 偶尔 | 长按提示 | Tooltip | 主题 |
ListItem | 常用 | 标准列表行模板 | 两行 Text + icon | 列表 |
导航宿主
| 组件 | 频率 | 一句话 | XML 近似 | 分讲 |
NavHost + composable | 常用 | 目的地图 | NavHostFragment | 导航 |
rememberNavController | 常用 | 导航控制器 | NavController / findNavController | 导航 |
navigation() 嵌套图 | 偶尔 | 每 Tab 一条返回栈 | 嵌套 nav_graph | 导航 |
dialog("route") | 偶尔 | 对话框进返回栈 | graph 里的 dialog 目的地 | 导航 |
| 类型安全路由(Navigation 2.8+) | 偶尔 | 路由对象化 | Safe Args | 导航 |
主题 · 动画 · 互操作
| 组件 / API | 频率 | 一句话 | XML 近似 | 分讲 |
MaterialTheme | 常用 | 颜色 / 字阶 / 形状入口 | Theme / styles | 主题 |
lightColorScheme / darkColorScheme | 常用 | 深浅两套令牌 | values / values-night | 主题 |
dynamicLight/DarkColorScheme | 偶尔 | 壁纸动态取色 | — | 主题 |
Surface | 常用 | 跟 surface 令牌的底 | background=?attr/colorSurface | 主题 |
animate*AsState | 常用 | 单值平滑过渡 | ObjectAnimator | 动画 |
AnimatedVisibility | 常用 | 显隐过渡 | animateLayout* | 动画 |
AnimatedContent | 常用 | 按状态切换内容 | ViewSwitcher | 动画 |
Crossfade | 偶尔 | 内容交叉淡入 | — | 动画 |
rememberInfiniteTransition | 常用 | 循环旋转 / 呼吸 | 无限 ObjectAnimator | 动画 |
updateTransition | 偶尔 | 一状态多属性齐步 | AnimatorSet | 动画 |
Animatable | 偶尔 | 手势跟手 / 顺序动画 | ValueAnimator | 动画 |
SharedTransitionLayout | 偶尔 | 共享元素飞入详情 | ActivityOptions | 动画 |
AndroidView / AndroidViewBinding | 偶尔 | 嵌旧 View | 直接用 View | 迁移 |
ComposeView | 偶尔 | XML 里嵌 Compose | — | 迁移 |
@Preview | 常用 | IDE 预览 | Layout Editor | 结构 |
Canvas / 自绘 Layout | 偶尔 | 自定义绘制 / 测量 | 自绘 View | 自绘 |
选型口诀:页面壳用 Scaffold;长列表用 Lazy*;表单用 OutlinedTextField + Button;反馈用 Snackbar / Dialog / Sheet;导航用 NavHost + NavigationBar / TabRow。