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. elementUI中table组件前端自己实现序号排序

    <el-table-column type="index" label="序号" width="50" align="cen ...

  2. 理解redux中间件

    redux questions : 1. reducers 函数如何创建和聚合 2. action创建函数如何如何包裹在dispatch函数中 3. 如何给默认的dispatch方法增加中间件能力 m ...

  3. python菜鸟学习: 14. GUI界面化使用

    # 获取输入框中的内容 def getVars(): global outterDomain1, innertDomian1, guestEid1, appName1, unicodeName1, r ...

  4. htmlApk:一个轻松在线打包生成双端app应用的网站

    htmlApk平台,基于HTML打包制作APP,只要有手机网站或者HTML文件,3分钟即可生成app多端应用,同时拥有苹果版和安卓版双系统APP,快速进入移动互联时代. 全面支持h5网址打包,可设置图 ...

  5. 前端之Vue day 05 父子通信、ref、动态组件、插槽、计算监听属性

    一.父传子 因为组件间数据不共享,所以我们要想办法打通父子之间的数据联系 自定义属性: 在父级中,给在使用的子组件标签加一个自定义的属性,因为要用到data,所以要写成 :自定义属性名='' #注意, ...

  6. go 语言操作es示例

    使用高度封装的 orm 查询 package main import ( "context" "fmt" "log" "os&qu ...

  7. uni-app 声音/震动提示,播放系统默认消息声音 安卓(Android)测试通过

    可以跟据自己需求使用,有不足的地方希望大家帮忙补充 参数 type Options vibrate:震动 othre:铃声 1 msg_remind(type) 2 { 3 if(type=='vib ...

  8. 【git】2.5远程仓库的使用

    资料来源 (1) https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93% ...

  9. linux用户权限与组

    less  /etc/passwd 查看用户文件 passwd tom[用户名] 修改密码 useradd suguihua[用户名] 新增用户名 vim  /etc/passwd 将xiaoqian ...

  10. EF Core如何到回滚上一次迁移

    update-database 上上次迁移记录 让数据库回滚 remove-migration 删除本次有误的迁移文件 修改完毕后 add-migration updata-database 完成