扩展时更改 ModalDrawer 的大小,Jetpack Compose

Change the size of ModalDrawer when expanded, Jetpack Compose

我正在尝试在我的应用程序中实现一个抽屉,但它目前太大了。我会澄清我的意思,我知道其他问题,但他们似乎没有得到正确的答案,我的用例似乎有点不同。

这是帮助我实现这一目标的代码

@Composable
fun MainContent(component: Main) {

    val drawerState = rememberDrawerState(DrawerValue.Closed)
    val scope = rememberCoroutineScope()

    val openDrawer = {
        scope.launch {
            drawerState.open()
        }
    }

    Children(routerState = component.routerState, animation = crossfadeScale()) {
        when (val child = it.instance) {
            is Main.Child.Dashboard -> {
               HomeView() { ModalDrawer(drawerState) { DashboardContent(child.component) { openDrawer() } } }
            }
        }
    }
}

@Composable  // This is a wrapper around current screen
fun HomeView( content: @Composable () -> Unit) {
    Scaffold(modifier = Modifier.fillMaxSize()) {
        content()
    }
}

@Composable // Here is the actual drawer
fun ModalDrawer(drawerState: DrawerState, content: @Composable () -> Unit) {
    ModalDrawer(
        drawerState = drawerState,
        drawerContent = {
            Text("1234")
            Text("12345")
        },
        content = {
            content()
        },
        gesturesEnabled = drawerState.isOpen
    )
}

您可以忽略子部分,它基本上只是检查当前处于活动状态的屏幕(现在它是唯一的仪表板,但当我将屏幕添加到混合中时,它也会显示其他屏幕,并与抽屉一起正常工作我不得不走这条路。)

这是一个多平台应用程序,所有编写代码都在 CommonMain 模块中。

不,这是根据 material 准则构建的,无法更改此大小

但是您可以获取此可组合项的源代码并创建您自己的模态抽屉。

这会花费您一些时间,请尝试从容器文件中复制所有代码,您将需要处理少量内部结构