如何在 Jetpack Compose 中让 Bottom Sheet 覆盖整个屏幕
How do I make Bottom Sheet cover whole screen in Jetpack Compose
我正在使用 Jetpack Compose 并尝试在用户单击 TopAppBar
中的登录按钮时让登录屏幕覆盖整个屏幕。
我正在使用 ModalBottomSheetLayout
和 Scaffold
的组合,所以我可以使用 TopAppBar
和 BottomAppBar
。
目前显示登录界面时只覆盖一半屏幕。
val coroutineScope = rememberCoroutineScope()
val bottomState = rememberModalBottomSheetState(ModalBottomSheetValue.Hidden)
ModalBottomSheetLayout(
sheetState = bottomState,
sheetShape = MaterialTheme.shapes.large,
sheetContent = {
FullScreen()
}
) {
Scaffold(
topBar = {
TopAppBar(
...
content = {
NavHost(navController = navController,
startDestination = "journey") {
composable("journey") { JourneyScreen() }
...
bottomBar = {
BottomAppBar(
content = {
BottomNavigation() {
val navBackStackEntry by navController.currentBackStackEntryAsState()
...
@Composable
fun FullScreen() {
Box(modifier = Modifier
.fillMaxSize()
) {
Text("Full Screen")
}
}
在此问题上停留的时间太长了,我们将不胜感激。
要全屏 ModalBottomSheetLayout
,而不是 state.show()
,请使用:
scope.launch { state.animateTo(ModalBottomSheetValue.Expanded) }
我正在使用 Jetpack Compose 并尝试在用户单击 TopAppBar
中的登录按钮时让登录屏幕覆盖整个屏幕。
我正在使用 ModalBottomSheetLayout
和 Scaffold
的组合,所以我可以使用 TopAppBar
和 BottomAppBar
。
目前显示登录界面时只覆盖一半屏幕。
val coroutineScope = rememberCoroutineScope()
val bottomState = rememberModalBottomSheetState(ModalBottomSheetValue.Hidden)
ModalBottomSheetLayout(
sheetState = bottomState,
sheetShape = MaterialTheme.shapes.large,
sheetContent = {
FullScreen()
}
) {
Scaffold(
topBar = {
TopAppBar(
...
content = {
NavHost(navController = navController,
startDestination = "journey") {
composable("journey") { JourneyScreen() }
...
bottomBar = {
BottomAppBar(
content = {
BottomNavigation() {
val navBackStackEntry by navController.currentBackStackEntryAsState()
...
@Composable
fun FullScreen() {
Box(modifier = Modifier
.fillMaxSize()
) {
Text("Full Screen")
}
}
在此问题上停留的时间太长了,我们将不胜感激。
要全屏 ModalBottomSheetLayout
,而不是 state.show()
,请使用:
scope.launch { state.animateTo(ModalBottomSheetValue.Expanded) }