pointerInput()
pointerInput()可以診測各種手勢,以下以點擊作為例子:
- onTap 點一下
- onDoubleTap 點二下
- onPress 壓
- onLongPress 長壓
取得點擊xy座標

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Composable
fun PointerInputExample1() {
var lastOffset by remember { mutableStateOf(Offset.Zero) }
Box(
modifier = Modifier
.size(100.dp)
.pointerInput(Unit) {
detectTapGestures(
onTap = { offset ->
lastOffset = offset
}
)
}
) {
Text("x = ${lastOffset.x.toInt()}, y = ${lastOffset.y.toInt()}")
}
}
取得各個點擊手勢xy座標
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@Composable
fun PointerInputExample1() {
var lastOffset by remember { mutableStateOf(Offset.Zero) }
var gesture by remember { mutableStateOf("") }
Box(
modifier = Modifier
.size(100.dp)
.pointerInput(Unit) {
detectTapGestures(
onTap = { offset ->
lastOffset = offset
gesture = "onTap"
},
onDoubleTap = { offset ->
lastOffset = offset
gesture = "onDoubleTap"
},
onLongPress = { offset ->
lastOffset = offset
gesture = "onLongPress"
},
onPress = { offset ->
lastOffset = offset
gesture = "onPress"
}
)
}
) {
Text("gesture = $gesture x = ${lastOffset.x.toInt()}, y = ${lastOffset.y.toInt()}")
}
}