【发布时间】:2021-07-05 15:58:39
【问题描述】:
如何根据当前屏幕使用 Scaffold 更改 FAB 操作(onClick{})。
Scaffold(
floatingActionButton = {
FloatingActionButton(onClick = {
//Different actions here depending on current screen
}) { }
}
) {
NavHost(
navController = navController,
startDestination = "route1"
) {
composable(
route = "route1"
) {
ScreenOne()
}
composable(
route = "route2"
) {
ScreenTwo()
}
}
}
例如,我想使用 ScreenOne() 将一些实体添加到数据库中,而使用 ScreenTwo() 我想保存已编辑的实体。而这一切都使用 Scaffold 共享的同一个 FAB。
更新: 刚刚明白我还需要提到我还需要FAB知道一些数据才能操作。例如我想通过点击 FAB 将一些实体保存到数据库中,所以 FAB 需要知道这个实体。
示例: 我正在单击列表中的某个项目。它用一些实体打开一些导航方向。我正在修改此实体并单击 FAB 以保存已编辑的实体。
【问题讨论】:
标签: android android-jetpack-compose android-jetpack-compose-scaffold