12

我们可以在 JetpackCompose 中使用 Navigation Drawer,Scaffold如下所示

Scaffold(
    drawerContent = { Text(text ="Drawer") }
) {}

在此处输入图像描述

我想让抽屉的宽度变小。我该怎么做?

4

3 回答 3

3

您可以使用Scaffold方法中drawerShape的参数修改形状(包括宽度和高度) 。

所以例如

 Scaffold(
    scaffoldState = scaffoldState,
    drawerContent = { Text("Drawer content") },
    drawerShape = customShape(),
    content = {inner padding -> /* Body*/}
)

然后你的 customShape 函数

fun customShape() =  object : Shape {
    override fun createOutline(
        size: Size,
        layoutDirection: LayoutDirection,
        density: Density
        ): Outline {
            return Outline.Rectangle(Rect(0f,0f,100f /* width */, 131f /* height */))
     }
 }

您还可以使用Outline.Rounded来获得圆角

于 2021-08-27T18:14:10.107 回答
0
Scaffold(
      topBar = {
          topBar()
      },
      scaffoldState = scaffoldState,
      drawerContent = {
          drawer()
      },
      drawerGesturesEnabled = true
  ) { innerPadding ->
      NavigationHost(navController = navController)
  }
}
于 2022-01-12T20:23:58.383 回答
-1

您是否尝试过在您的可组合抽屉内添加修饰符?

像这样的东西:

Scaffold(drawerContent = { 
        Box(modifier = Modifier.fillMaxWidth(0.9f){
            Text(text = "Drawer") 
        }
    }) {}
于 2020-12-15T13:41:44.107 回答