Jetpack Compose 中的 "View.onTouchListener" 等价物是什么?我需要触摸坐标

What is the "View.onTouchListener" equivalent in Jetpack Compose? I need the touch coordinates

这是我们目前在典型视图中使用的内容:https://developer.android.com/reference/android/view/View.OnTouchListener

Jetpack Compose 中是否有等效项?

在compose beta-05版本中,您可以使用:

Text("Your Composable", modifier = Modifier.pointerInput(Unit) {
    detectTransformGestures { centroid, pan, zoom, rotation ->
    }
    // or
    detectDragGestures { change, dragAmount ->  }
    // or
    detectTapGestures(
        onPress = { offset ->  },
        onDoubleTap = { offset -> },
        onLongPress = { offset -> },
        onTap = { offset ->  }
    )
    // or other similar...
})

有了 1.0.0 你可以使用 PointerInput mod

例如,您可以使用 detectTapGestures:

Modifier.pointerInput(Unit) {
    detectTapGestures(
        onPress = {/* Called when the gesture starts */ },
        onDoubleTap = { /* Called on Double Tap */ },
        onLongPress = { /* Called on Long Press */ },
        onTap = { /* Called on Tap */ }
    )
}

detectDragGestures:

Box(
    Modifier
        .pointerInput(Unit) {
            detectDragGestures { change, dragAmount ->
                change.consumeAllChanges()
                //...
            }
        }
)

您还可以使用一些 mod 修饰符,例如:.scrollable.clickable.draggable.swipeable