【发布时间】:2021-11-18 16:08:38
【问题描述】:
我在 NestedScrollView 中有一个带有 LinearLayout 的普通 XML 视图。里面有一个普通的 View 和一个包含 AndroidView 的 Composable 视图。
布局:
<NestedScrollView ...>
<LinearLayout ...>
<View .../> <!-- click listener works properly -->
<androidx.compose.ui.platform.ComposeView .../> <!-- click in inner AndroidView doesn't work properly -->
</LinearLayout>
</NestedScrollView>
ComposeView 是这样设置的:
composeView.setContent {
AndroidView(factory = {
TextView(it).apply {
setText("View in Compose")
setOnClickListener { } // This breaks the scroll
}
})
}
点击 Compose 中的 View 时,滚动不起作用。点击监听器吃掉所有的触摸事件。
有什么方法可以让 Compose 中的 Android View 点击行为正确吗?
【问题讨论】:
-
对不起,我弄错了滚动视图类。我使用了 NestedScrollView。据悉,目前尚不支持 Compose & View 互操作性:developer.android.com/jetpack/compose/interop/…
-
Chris banes 在问题跟踪器中发布了一个解决方法,我在这里回答了一个相关问题:stackoverflow.com/a/70195667/1128600
标签: android android-jetpack-compose android-scrollview