我正在研究RN应用程序,它有一个屏幕,上面有一个“可绘制”区域的列表。所以这个屏幕应该是可滚动和可绘制的。我想做的是找到一个解决方案,通过Apple Pencil区分来自手指(这些将用于滚动和禁止绘图)和手写笔(这些将用于绘图和禁止滚动)的触摸事件。在手势响应器和PanResponder中,每次移动都会传递事件。每个events(与nativeEvent一起)都包含type属性。但是,在模拟器和设备中,该属性始终为null。有没有办法识别手指和手写笔的移动事件?
csga3l581#
我们的一个项目也有类似的需求,我们所做的是使用Pressable组件,handlePress函数作为prop传递给该组件。该函数接受GestureResponderEvent作为事件回调参数。通过使用event.nativeEvent.altitudeAngle属性added recently,我们能够检测Apple Pencil触摸。
Pressable
GestureResponderEvent
function handlePress(event: GestureResponderEvent) { //@ts-expect-error React Native Types do not include altitudeAngle const isPencilTouch = !!event.nativeEvent.altitudeAngle; ... }
1条答案
按热度按时间csga3l581#
我们的一个项目也有类似的需求,我们所做的是使用
Pressable
组件,handlePress函数作为prop传递给该组件。该函数接受GestureResponderEvent
作为事件回调参数。通过使用event.nativeEvent.altitudeAngle属性added recently,我们能够检测Apple Pencil触摸。