在Jetpack中添加抽屉切换按钮

时间:2020-09-04 09:36:35

标签: android android-jetpack-compose

我想将汉堡包图标添加到应用栏,然后使用该图标打开/关闭抽屉。

我将如何实现?

Scaffold(
    drawerShape = RoundedCornerShape(topRight = 10.dp, bottomRight = 10.dp),
    drawerElevation = 5.dp,
    drawerContent = {
      // Drawer
    },
    topBar = {
      TopAppBar(
        navigationIcon = {
          Icon(
            Icons.Default.Menu,
            modifier = Modifier.clickable(onClick = {
              // Open drawer => How?
            })
          )
        },

        modifier = Modifier
          .fillMaxWidth()
          .clip(RoundedCornerShape(bottomLeft = 10.dp, bottomRight = 10.dp)),
        title = { Text(text = "Hello") }
      )
    },
  ) {}

2 个答案:

答案 0 :(得分:5)

使用 rememberScaffoldState() 修改抽屉状态。

  1. 创建变量:
val state = rememberScaffoldState()
  1. 将状态传递到Scaffold
Scaffold(
   scaffoldState = state,
   // ...
)
  1. state.drawerState.open()中使用state.drawerState.close()onClick打开/关闭抽屉。

  2. navigationIcon中为TopAppBar创建图标:

val state = rememberScaffoldState()
Scaffold(
  scaffoldState = state,
  topBar = {
    TopAppBar(
      title = { Text(text = "AppBar") },
      navigationIcon = {
        Icon(
          Icons.Default.Menu,
          modifier = Modifier.clickable(onClick = {
            state.drawerState.open() // or toggle
          })
        )
      }
    )
  },
  drawerShape = RoundedCornerShape(topRight = 10.dp, bottomRight = 10.dp),
  drawerContent = {
    Text(text = "Drawer")
  }
) {
   // Scaffold body
}

答案 1 :(得分:3)

使用 dr = te.where((te.latitude > 72) & (te.latitude < 80) & (te.longitude > -15) & (te.longitude < 10),drop=True) (使用 1.0.0 测试),您可以使用:

1.0.0-beta07

enter image description here