[RN]react-native-scrollable-tab-view和FlatList手势冲突解决

问题描述:

react-native-scrollable-tab-view叠加react-native-scrollable-tab-view再加上FlatList
FlatList向下拉时,会造成上一级的react-native-scrollable-tab-view插件的内容左右滑动,进而FlatList的下拉滑动失效,做不成下拉刷新功能

解决思路 :

FlatList滑动时,判断滑动方向,如果是下拉就屏蔽react-native-scrollable-tab-view左右滑动的功能,等下拉时间结束时再开启,如果方向是左右就开启react-native-scrollable-tab-view左右滑动的功能,不好的地方就是,手势切换时会有感觉

代码如下:

<FlatList
         data={this.state.data}
         renderItem={this.renderListItem}
         refreshing={this.state.refreshing}
         onRefresh={this._renderRefresh}
         style={{marginBottom:40}}
         onTouchStart={(e) => {
             this.pageX = e.nativeEvent.pageX;
             this.pageY = e.nativeEvent.pageY;
         }}
        onTouchMove={(e) => {
               if(
                     Math.abs(this.pageY - e.nativeEvent.pageY) >               Math.abs(this.pageX -     e.nativeEvent.pageX)){
               // 下拉
                 this.props.lockSlide();
                    } else { // 左右滑动
                    this.props.openSlide();
         } } />

主要方法是onTouchStart,onTouchMove, 屏蔽react-native-scrollable-tab-view左右滑动

调用:

调用
_lockSlide(){ this.setState({
      scrollTabViewLocked : true
    })}

_openSlide(){ this.setState({
      scrollTabViewLocked : false
    });}

本博客地址: wukong1688

本文原文地址:https://www.cnblogs.com/wukong1688/p/11108393.html

转载请著名出处!谢谢~~

原文地址:https://www.cnblogs.com/wukong1688/p/11108393.html

时间: 2024-08-07 10:05:58

[RN]react-native-scrollable-tab-view和FlatList手势冲突解决的相关文章

[RN] React Native 使用 react-native-camera 过程中报错 Found react-native-camera &#39;mlkit&#39; but wasn&#39;t required.`

详细报错如下: Could not resolve all task dependencies for configuration ':app:debugRuntimeClasspath'. Could not resolve project :react-native-camera. Required by: project :app > Cannot choose between the following configurations of project :react-native-ca

[RN] React Native 使用 FlatList 实现九宫格布局

React Native 使用 FlatList 实现九宫格布局 先看图片演示实例: 本文以图片列表为例,实现九宫格布局! 主要有两种方法: 1)方法一: 利用FlatList的 numColumns ={2} // 一行2个 2)方法二: 利用 FlatList的 contentContainerStyle={styles.listViewStyle} 其中样式如下: listViewStyle: { // 主轴方向 flexDirection: 'row', // 一行显示不下,换一行 fl

[RN] React Native FlatList跳转到顶部/底部

React Native FlatList跳转到顶部/底部 核心代码如下: <ScrollView showsVerticalScrollIndicator={false} contentContainerStyle={styles.container} //下拉刷新 ,有 ScrollView 需要加载ScrollView,无则加到 FlatList refreshControl={ <RefreshControl refreshing={this.state.isRefreshing} o

[RN] React Native 打包时 减少 Apk 的大小

React Native 打包时 减少 Apk 的大小 主要有两个方法: 在打包前设置 android\app\build.gradle 文件中 1) def enableProguardInReleaseBuilds = true 经测试,大概能减少 1M 之内的大小 2) def enableSeparateBuildPerCPUArchitecture = true 这个测试后就牛了,打包后的文件为大概 7~8M左右 不过需要注意的是,这里会分成多个平台 命名来分别拆分输出 就是了! 但挺

[RN] React Native 使用开源库 react-native-image-crop-picker 实现图片选择、图片剪裁

React Native 使用开源库 react-native-image-crop-picker 实现图片选择.图片剪裁 该库可以实现启动本地相册和照相机来采集图片,并且提供多选.图片裁剪等功能,支持iOS和Android两个平台,不同平台需要分别配置,详细的文字说明见github. 一.安装 npm install react-native-image-crop-picker -S react-native link react-native-image-crop-picker 二.配置 1

关于React Native init 项目时候速度太慢的解决方法

因为init项目的时候需要下载资源,但又因为react native的网站被墙所以下载很慢,解决方法就是换成淘宝的NPM镜像 我是直接使用了命令去替换了NPM $ npm install -g cnpm --registry=https://registry.npm.taobao.org 这样一来,就会快很多了,实测,大概3分钟. 淘宝NPM地址:https://npm.taobao.org 如有错误,恳请指出.

[RN] React Native 封装选择弹出框(ios&amp;android)

之前看到react-native-image-picker中自带了一个选择器,可以选择拍照还是图库,但我们的项目中有多处用到这个选择弹出框,所以就自己写了一下,最最重要的是ios和Android通用.先上动态效果图~ 参考: https://www.jianshu.com/p/42b4390e860e https://www.jianshu.com/p/71c4d047b2f8 原文地址:https://www.cnblogs.com/wukong1688/p/10960917.html

[RN] React Native Fetch请求设置超时

一.实现思路 根据Promise.race的特性,我们在Promise.race里面添加两个任务,一个是正常的网络请求任务A,另外一个便是网络延时任务B,网络延时可以利用setTimeout方法实现. 这个时候会有三种情况出现: 1.A任务在8秒内完成(假定8秒超时),Promise.race任务正常结束. 2.超过8秒A任务仍然未完成,由B任务计时结束自动中断Promise.race. 3.发生异常,Promise.race自动结束. 针对以上三种情况来设计网络超时方案. 二.代码 HttpU

React Native Expected a component class,got [object Object]解决

报错原因: 组件大小写错误. 解决方式: 修改组件名称即可. 这篇博客介绍了大部分RN的错误原因和解决方法: http://blog.csdn.net/chichengjunma/article/details/52943013