在 Jetpack Compose 脚手架中使用抽屉时,可以使用手势打开和关闭它。如果脚手架内容包含 MapView,则无法水平拖动地图。相反,抽屉被打开。
当可滚动行水平拖动(滚动)时,这种情况不会发生,抽屉不会打开。
如何防止用户拖动地图时抽屉打开?当拖动脚手架的其余内容时,该手势应该仍然有效。
不幸的是,用 a 包裹AndroidView并Row不能解决问题,以及使用 ModalDrawer 而不是脚手架。
使用 Compose rc02 和 kotlin 1.5.10 重现的代码(编辑:使用 Compose 1.0.3 和 Kotlin 1.5.30 进行验证):
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MaterialTheme {
Scaffold(
drawerContent = {
Text("Drawer Content")
},
content = {
Column {
Text("Dragging here should open the drawer")
val mapView = rememberMapViewWithLifecycle()
AndroidView({ mapView }, Modifier.fillMaxSize())
}
}
)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
该函数rememberMapViewWithLifecycle() …
android kotlin android-mapview android-jetpack android-jetpack-compose