Jetpack Compose是否内置底部上滑菜单(ADD MONEY TO EA DUMPLING式)设计功能?
Jetpack Compose 实现底部上滑菜单方案
Jetpack Compose 内置了ModalBottomSheetLayout组件,可以直接实现你需要的底部上滑菜单效果,完全适配图中带标题的样式需求。
基础实现示例
以下是匹配你需求的代码示例,包含标题、输入区域和操作按钮:
@Composable fun AddMoneyBottomSheet() { val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) val scope = rememberCoroutineScope() ModalBottomSheetLayout( sheetState = sheetState, sheetShape = RoundedCornerShape(topStart = 16.dp, topEnd = 16.dp), sheetContent = { Column( modifier = Modifier .fillMaxWidth() .padding(horizontal = 16.dp, vertical = 20.dp) ) { // 菜单标题 Text( text = "ADD MONEY TO EA DUMPLING", style = MaterialTheme.typography.titleMedium, fontWeight = FontWeight.Bold, modifier = Modifier.padding(bottom = 24.dp) ) // 金额输入框 OutlinedTextField( value = "", onValueChange = {}, label = { Text("Enter Amount") }, modifier = Modifier.fillMaxWidth(), keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number) ) // 确认按钮 Button( onClick = { scope.launch { sheetState.hide() } }, modifier = Modifier .fillMaxWidth() .padding(top = 24.dp), colors = ButtonDefaults.buttonColors(containerColor = Color.Green) ) { Text("ADD MONEY", color = Color.White) } } } ) { // 主界面触发按钮 Column( modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally ) { Button(onClick = { scope.launch { sheetState.show() } }) { Text("Open Add Money Menu") } } } }
自定义调整说明
- 展开状态:通过
skipPartiallyExpanded = true可以禁用半展开状态,让菜单直接全屏展开,匹配图中效果。 - 样式定制:使用
sheetShape设置顶部圆角,sheetBackgroundColor修改背景色,sheetElevation调整阴影深度,完全贴合设计需求。 - 交互控制:通过
sheetState可以监听菜单展开/收起状态,调用show()/hide()方法控制显示逻辑,支持协程异步操作。
内容的提问来源于stack exchange,提问作者nikhilbalwani
相关产品推荐
相关产品推荐

