【发布时间】:2022-12-10 08:32:05
【问题描述】:
【问题讨论】:
-
这就是所谓的底片。
-
好的谢谢我找错东西了
-
这回答了你的问题了吗? Customization Bottom Sheet Dialog's View
标签: android android-studio android-jetpack-compose android-jetpack
【问题讨论】:
标签: android android-studio android-jetpack-compose android-jetpack
您可以使用 Jetpack Compose 提供的内容,在此处找到更多信息 Jetpack Compose Scaffold + Modal Bottom Sheet
或者你可以让你自己,这是一个示例实现
@Composable
fun MyCustomBottomSheetScaffold(
content: @Composable () -> Unit,
isBottomSheetVisible: Boolean,
onDismissRequest: () -> Unit,
bottom: @Composable () -> Unit,
overlayColor: Color = Color(0xAA_000000),
) {
val actualOverlayColor = animateColorAsState(if (isBottomSheetVisible) overlayColor else Color.Transparent).value
Box {
content()
Box(Modifier.fillMaxSize()
.then(if (isBottomSheetVisible) Modifier.clickable { onDismissRequest() } else Modifier)
.background(
actualOverlayColor
),
contentAlignment = Alignment.BottomCenter
) {
AnimatedVisibility(
isBottomSheetVisible,
enter = slideInVertically(initialOffsetY = { it }),
exit = slideOutVertically(targetOffsetY = { it }),
) {
bottom()
}
}
}
}
下面是如何使用它
@Composable
fun BottomSheetExample() {
// When this is true, the bottom sheet gets expanded
var isBottomSheetVisible by remember { mutableStateOf(false) }
MyCustomBottomSheetScaffold(
content = {
// Content goes here
Box(Modifier.fillMaxSize().background(Color.Blue), contentAlignment = Alignment.Center) {
Button(onClick = { isBottomSheetVisible = true }) {
Text("Open")
}
}
},
isBottomSheetVisible = isBottomSheetVisible,
onDismissRequest = { isBottomSheetVisible = false },
bottom = {
// Bottom sheet content goes here
Box(
Modifier.fillMaxWidth()
.background(Color.White)
.clickable {
isBottomSheetVisible = false
}
.padding(16.dp),
contentAlignment = Alignment.Center
) {
Text("Close")
}
}
)
}
【讨论】: