pointerInput()

pointerInput()可以診測各種手勢,以下以點擊作為例子:

  • onTap 點一下
  • onDoubleTap 點二下
  • onPress 壓
  • onLongPress 長壓

取得點擊xy座標

img

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

results matching ""

    No results matching ""