提问人:kkkkk 提问时间:6/17/2023 更新时间:6/18/2023 访问量:292
Android Jetpack Compose 全宽抽屉
Android Jetpack Compose full width drawer
问:
你如何制作一个抽屉来填满整个屏幕的宽度?
ModalNavigationDrawer(
drawerState = drawerState,
drawerContent = {
ModalDrawerSheet(
modifier = Modifier
.fillMaxWidth()
.fillMaxHeight()
.background(Color.Yellow),
) {
}
},
content = {
}
)
此代码不起作用。当抽屉关闭时,可以看到其中的一小块。
答:
2赞
william xyz
6/17/2023
#1
当将修饰符直接添加到 时,就会发生这种奇怪的行为,通过将其添加到子元素中,它不会发生。ModalDrawerSheet
@Composable
fun Test() {
val drawerState = rememberDrawerState(initialValue = DrawerValue.Closed)
ModalNavigationDrawer(
drawerState = drawerState,
drawerContent = {
ModalDrawerSheet(
modifier = Modifier
.then(
if (drawerState.targetValue == DrawerValue.Open) Modifier.fillMaxSize() else Modifier
)
) {
Column(
modifier = Modifier
.fillMaxSize()
.background(Color.Yellow)
) {
}
}
},
content = {
}
)
}
虽然,在抽屉关闭时应用最大尺寸会导致副作用,但我们可以添加一个条件,仅在抽屉打开时使用 。ModalDrawerSheet
Modifier.then
评论
0赞
kkkkk
6/18/2023
尽管如此,这仍然不是我正在寻找的行为。我需要它覆盖整个屏幕。打开时。
0赞
william xyz
6/18/2023
@kkkkk我已经更新了我的答案以匹配这种行为。
1赞
kkkkk
6/18/2023
伟大!谢谢,它:)
评论