Jetpack Compose:拖动 MapView 时打开脚手架抽屉

时间:2021-07-28 12:42:46

标签: android kotlin android-mapview android-jetpack android-jetpack-compose

在 Jetpack Compose 脚手架中使用抽屉时,可以使用手势来打开和关闭它。 如果脚手架内容包含 MapView,则无法水平拖动地图。而是打开了抽屉。

当水平拖动(滚动)可滚动行时,不会发生这种情况,此时不会打开抽屉。

当用户拖动地图时,如何防止抽屉打开?当其余脚手架内容被拖动时,手势应该仍然有效。

不幸的是,用 AndroidView 包裹 Row 并不能解决问题,以及使用 ModalDrawer 代替脚手架。


使用 compose rc02 和 kotlin 1.5.10 重现的代码:

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())
                        }
                    }
                )
            }
        }
    }
}

函数 rememberMapViewWithLifecycle() 取自 Crane sample app

0 个答案:

没有答案