【问题标题】:How to detect simultaneous onPress events in react native?如何在本机反应中检测同时发生的 onPress 事件?
【发布时间】:2016-12-30 19:03:40
【问题描述】:

我正在尝试设置一个反应原生应用程序,当用户触摸按钮时播放声音。一次触摸一个按钮时效果很好。

但是,似乎一次只能运行一个onPressIn 函数。但我希望能够同时按下多个按钮。这适用于您可能希望按住一个长音符然后在其上播放快速打击乐的情况。

我的组件看起来像:

<TouchableHighlight onPressIn={this.padPress.bind(this, padNum)} underlayColor="gray">
  <View style={[padWidth]}></View>
</TouchableHighlight>

有没有办法一次检测多个按钮按下?或者另一种方式来实现这个功能?

谢谢!

【问题讨论】:

  • 你有没有最终弄清楚如何做到这一点?

标签: ios react-native


【解决方案1】:

我相信你需要的是 Pan Responder

文档:https://facebook.github.io/react-native/releases/next/docs/panresponder.html

PanResponder 将多个触摸整合为一个手势。它使单点触控手势对额外的触摸具有弹性,并可用于识别简单的多点触控手势。

【讨论】:

  • 谢谢,但这也不起作用。我尝试注册到onPanResponderGrantonPanResponderMove,但两者都只响应初始触摸事件。如果我握住手指并再次单击同一视图,则功能不会再次触发。还有其他建议吗?
【解决方案2】:

使用 View 组件的 onTouchStart、onTouchEnd 属性可以实现屏幕上不同组件的同时 onPress。

有关代码 sn-p 的详细说明,请查看此答案

https://stackoverflow.com/a/42779656/2131857

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 2020-09-29
    • 2018-02-15
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多