Android:compose-Scaffold组件
在Jetpack Compose中,Scaffold
是一个核心布局组件,它提供了Material Design应用的基本结构框架,包含AppBar、浮动按钮、抽屉菜单等标准元素。
典型应用场景包括:
- 基础页面结构:通过
appBar
和body
快速搭建标准页面框架 - 导航功能:结合
drawer
实现侧滑菜单,或通过bottomBar
添加底部导航 - 交互扩展:使用
floatingActionButton
添加主要操作按钮 - 状态管理:通过
scaffoldState
控制抽屉开关和Snackbar显示
版本兼容性要求Kotlin编译器与Compose版本匹配,推荐使用:
- Kotlin 1.9.20+
- Compose Compiler 1.5.0+
- Material3 1.2.0+1314
Scaffold组件作为Material Design布局的核心容器,其重要参数可分为结构控制、视觉样式和交互功能三大类:
一、基础结构参数
topBar
:配置顶部应用栏(TopAppBar),支持自定义标题、导航图标和操作按钮。bottomBar
:设置底部导航栏(BottomNavigation),通常与导航组件配合使用。content
:定义主体内容区域,自动处理与AppBar的间距(通过PaddingValues参数)。
二、交互功能参数
floatingActionButton
:悬浮操作按钮(FAB),支持位置自定义(通过floatingActionButtonPosition)。drawerContent
:左侧抽屉菜单内容,需配合scaffoldState
控制开关状态。snackbarHost
:消息提示组件,需传入SnackbarHostState实现消息队列管理。
三、视觉样式参数
containerColor
:主容器背景色(Material3中替代旧版backgroundColor。contentColor
:基于容器色的自动内容配色,确保文字可读性。drawerShape
:抽屉菜单的圆角样式,默认使用MaterialTheme.shapes.large。
四、状态管理参数
scaffoldState
:包含DrawerState和SnackbarHostState的复合状态对象。contentWindowInsets
:处理系统栏(状态栏/导航栏)的边距补偿,默认使用ScaffoldDefaults.contentWindowInsets。
在Material3版本中,颜色参数优先采用MaterialTheme.colorScheme的动态配色方案,而非固定色值。对于自适应布局,推荐使用NavigationSuiteScaffold实现不同屏幕尺寸的自动布局切换。