ReactNative多个摇杆操控实现

本文介绍了在ReactNative中实现多个摇杆操控的需求及解决方案。针对iOS,使用Touchable接口可满足需求,而对于Android,由于缺乏合适的RN解决方案,采取原生桥接方式,通过重写onTouchEvent监听MotionEvent,并通过DeviceEventEmitter将数据发送到RN层。
摘要由CSDN通过智能技术生成

ReactNative多个摇杆操控实现

需求
  • 在ReactNative中实现多个摇杆操控,即多个滑块同时响应不同手指的触控。
调研准备阶段
  • 使用 GestureResponderHandlers

    • 伪代码

      ...
      
      componentWillMount() {
      
          this._gesture = {
      
              // 在用户开始触摸的时候(手指刚刚接触屏幕的瞬间),是否愿意成为响应者?
              onStartShouldSetResponder: (evt: GestureResponderEvent) => true,
              // 如果View不是响应者,那么在每一个触摸点开始移动(没有停下也没有离开屏幕)时再询问一次:是否愿意响应触摸交互呢?
              onMoveShouldSetResponder: (evt: GestureResponderEvent)=> true,
      
              // 如果View返回true,并开始尝试成为响应者,那么会触发下列事件之一
      
              // View现在要开始响应触摸事件了。这也是需要做高亮的时候,使用户知道他到底点到了哪里。
              onResponderGrant: (evt: GestureResponderEvent)=>{},
              // 用户正在屏幕上移动手指时(没有停下也没有离开屏幕)。
              onResponderMove: (evt: GestureResponderEvent)=>{},
              // 触摸操作结束时触发,比如"touchUp"(手指抬起离开屏幕)。
              onResponderRelease: (evt: GestureResponderEvent)=>{}
          };
      }
      
      ...
      
      render() {
          return (
              <View style={styles.container}
          
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值