1. 基本使用,
注意两点

(1)将手势系统的函数放在“componentWillMount”生命周期函数里面,当时会有警告,警告自己看吧

(2)将方法使用ES6扩展运算符展开

import React from 'react';
import {Text,View} from 'react-native'; export default class DetailScreen extends React.Component{
UNSAFE_componentWillMount(){
// 申请成为触摸事件响应者 -> 成为触摸事件响应者 -> 处理触摸事件 -> 释放触摸事件 -> 触摸事件结束

   let [beginX,beginY,endX,endY] = [0,0,0,0];
this.gestureHandlers = {
onMoveShouldSetResponder: (evt) => {
console.log('onMoveShouldSetResponder');
return true;
},
// 现在要开始响应触摸事件了。这也是需要做高亮的时候,使用户知道他到底点到了哪里。
onResponderGrant:(event)=>{
console.log('onResponderGrant');
console.log(event.nativeEvent);
let obj = event.nativeEvent;
beginX = parseInt(obj.locationX);
beginY = parseInt(obj.locationY);
}, //具体响应事件:(1)用户正在屏幕上移动手指时 ,“注意”触发次数过于频繁
onResponderMove:(event)=>{
console.log('用户正在移动手指,且没离开');
},
onResponderRelease:(event)=>{
console.log('手指移动后,释放');
console.log(event.nativeEvent);
let obj = event.nativeEvent;
endX = parseInt(obj.locationX);
endY = parseInt(obj.locationY);
let result = Math.abs(endX-beginX)>Math.abs(endY-beginY)
if(result){
console.log('横向移动之后,判断是做正负');
if(endX>beginX){
console.log('向右');
console.log(this.props);
}else{
console.log('向左'); }
}else{
console.log('竖向移动');
}
}
}
}
render(){
return (
<View
style={{flex:1,backgroundColor:'yellow'}}
{...this.gestureHandlers}
>
<Text>详情界面</Text>
</View>
)
}
}

*** 判断手势方向 , 我定义了 四个变量 (beginX,beginY,endX,EndY),在 onResponderGrant函数里,获得初始位置坐标 , 在onResponderRelease函数里,获取最终位置坐标,之后,先判断,是横向移动还是竖向移动,确定好了方向,再通过正负值,判断具体方向

RN 手势响应系统基本用法和获取坐标判断用户手势方向的更多相关文章

  1. 【React Native】进阶指南之二(手势响应系统)

    移动设备上的手势识别要比在 web 上复杂得多.用户的一次触摸操作的真实意图是什么,App 要经过好几个阶段才能判断.比如 App 需要判断用户的触摸到底是在滚动页面,还是滑动一个 widget,或者 ...

  2. iOS开发——运行时OC篇&使用运行时获取系统的属性:使用自己的手势修改系统自带的手势

    使用运行时获取系统的属性:使用自己的手势修改系统自带的手势 有的时候我需要实现一个功能,但是没有想到很好的方法或者想到了方法只是那个方法实现起来太麻烦,一或者确实为了装逼,我们就会想到iOS开发中最牛 ...

  3. 手势响应 ,避免点击多个cell同时响应同一手势多次,只响应第一个cell

    http://www.cnblogs.com/wfwenchao/articles/3700205.html UIView除了负责展示内容给用户外还负责响应用户事件.本章主要介绍UIView用户交互相 ...

  4. 使用Vue2+webpack+Es6快速开发一个移动端项目,封装属于自己的jsonpAPI和手势响应式组件

    导语 最近看到不少使用vue制作的音乐播放器,挺好玩的,本来工作中也经常使用Vue,一起交流学习,好的话点个star哦 本项目特点如下 : 1. 原生js封装自己的跨域请求函数,支持promise调用 ...

  5. 基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统)

    基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统) zouxy09@qq.com http://blog.csdn.net/zouxy09 一年多前开始接触计算机视觉这个领域的时候,年幼无 ...

  6. 如何获取系统Home(Launcher)应用判断用户是否处于home界面

    要把我们的应用程序作为home(launcher应用),只需要在AndroidManifest.xml中添加: <category android:name="android.inte ...

  7. [转]android系统各种音量的获取与设置

    获取系统音量 通过程序获取android系统手机的铃声和音量.同样,设置铃声和音量的方法也很简单! 设置音量的方法也很简单,AudioManager提供了方法:publicvoidsetStreamV ...

  8. android系统权限SET_PREFERRED_APPLICATIONS怎么获取

    最近自己写个demo,需要用到SET_PREFERRED_APPLICATIONS权限 在网上找了半天,大概有两种方式: 1. 将手机root后,把apk强行push到system/app目录下,重启 ...

  9. [转载]树莓派新版系统上使用mjpg-streamer获取USB摄像头和树莓派专用摄像头RaspiCamera图像

    树莓派新版系统上使用mjpg-streamer获取USB摄像头和树莓派专用摄像头RaspiCamera图像 网上有很多关于mjpg-stream移植到树莓派的文章,大部分还是使用的sourceforg ...

  10. react native 手势响应

    参考地址:https://www.jianshu.com/p/935e5c6a5064 官方文档地址:https://facebook.github.io/react-native/docs/panr ...

随机推荐

  1. git介绍和常用操作

  2. Blog-3

    前言 这几周的作业所涉及的知识点有数据的封装和.继承与多态.正则表达式,还有抽象类和接口,另外还有javafx的一些基本知识.题量适中,但是难度对于我来说是比较大的.总的来说就是跟以前的题目差不多,只 ...

  3. Python安装及配置教程

    安装教程 一.python3.6安装步骤 1.首先我们移步官网,下载最新版本的python-3.6.0.点我,我把你传送到python官网 在DownLoad下拉框中点击Windows,选择要下载的文 ...

  4. open-local部署和使用

    Open-Local简介 Open-local 是阿里巴巴开源,由多个组件构成的本地磁盘管理系统,目标是解决当前kubernetes本地存储能力缺失问题. Open-Local包含四大类组件: • S ...

  5. (0502)《UVM》sequence

  6. moment 时区问题

        moment.parseZone('2023-01-11T16:54:31.6864601').utc().format('YYYY-MM-DD HH:mm:ss')   文档 | Momen ...

  7. IDEA 项目运行内存设置

    IDEA 运行内存设置 1.堆内存设置 2.help ---- edit custom VM options 参考摘录:https://blog.csdn.net/wentaolv/article/d ...

  8. MATLAB基础—基础认识

    数建-MATLAB(基础认识) 一些基本使用 clear all :清除Workspace中的所有变量 clc: 清除Command Window中的所有命令 注释:%%(空空格)多行注释 或 % 单 ...

  9. nanopi SOCKS5 代理

    nanopi (SOCKS5+openvpn)  +  阿里ES(openvpn + socat) 构建内网代理. 需求: 公网 阿里ES服务器1台,内网nanopi1个(可连接公网服务器), 想从外 ...

  10. 阻塞I/O,非阻塞I/O,同步I/O,异步I/O

    根据应用程序是否阻塞自身运行分为: 阻塞I/O:是指应用程序在执行I/O操作后,如果没有获得响应,          就会阻塞当前线程,不能执行其他任务. 非阻塞I/O:是指应用程序在执行I/O操作后 ...