【发布时间】:2021-06-13 13:15:41
【问题描述】:
我想在 MainActivity(根可组合)中显示来自任何孩子 @Composable 的快餐栏。
我的第一个想法是使用CompositionLocalProvider 提供SnackbarHostState,但这似乎不起作用(或者我做错了)。
val mainSnackBarHostState = remember { SnackbarHostState() }
val SnackBarHostStateProvider = compositionLocalOf<SnackbarHostState> { mainSnackBarHostState }
CompositionLocalProvider(SnackBarHostStateProvider provides mainSnackBarHostState) {
MainScreenNavigationConfigurations(navController)
}
我的孩子@Composable 似乎无法找到/访问SnackBarHostStateProvider。
有什么想法吗?
【问题讨论】:
-
我猜你“必须”在覆盖整个屏幕(即你的根布局)的组合中定义诸如小吃店之类的东西,并定义一个 livedata 以在视图模型中与小吃店交互并传递该视图使用
CompositonLocalProvider对可组合树进行建模,并随时随地在代码中的任何位置进行交互
标签: android kotlin android-jetpack android-jetpack-compose