gpt4 book ai didi

javascript - 如何处理 PanResponder 长按事件?

转载 作者:数据小太阳 更新时间:2023-10-29 05:07:18 29 4
gpt4 key购买 nike

我正在尝试通过 PanResponder 在 React Native 中处理长按。经过一番体面的搜索后,我找不到如何以“正确的方式”进行操作,所以我在这里问。这个想法是在检测到屏幕上的长按(单击)时执行代码。我想出了这样的事情:

handlePanResponderGrant(e, gestureState){
// On the press of the button set a timeout
myVar = setTimeout(this.MyExecutableFunction(), LONG_PRESS_MIN_DURATION);
}

handlePanResponderRelease(e, gestureState) {
// Clear the timeout if the press is released earlier than the set duration
clearTimeout(myVar);
}

这是处理长按的正确方法还是有更好的方法?

最佳答案

我最终使用 setTimeout 实现了这个功能。这是具有检测屏幕的哪一部分被长按(向左或向右)的功能的代码:

handlePanResponderGrant(e, gestureState) {
console.log('Start of touch');

this.long_press_timeout = setTimeout(function(){
if (gestureState.x0 <= width/2 )
{
AlertIOS.alert(
'Left',
'Long click on the left side detected',
[
{text: 'Tru dat'}
]
);
}
else {
AlertIOS.alert(
'Right',
'So you clicked on the right side?',
[
{text: 'Indeed'}
]
);
}
},
LONG_PRESS_MIN_DURATION);
}
handlePanResponderMove(e, gestureState) {
clearTimeout(this.long_press_timeout);
}
handlePanResponderRelease(e, gestureState){
clearTimeout(this.long_press_timeout);
console.log('Touch released');
}
handlePanResponderEnd(e, gestureState) {
clearTimeout(this.long_press_timeout);
console.log('Finger pulled up from the image');
}

关于javascript - 如何处理 PanResponder 长按事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38752870/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com