小编Sin*_*kka的帖子

当触摸拖动而不是按下时,如何取消 TouchableOpacity 响应器?

我正在尝试实现我自己的反应本机滑动器组件,但是当在 Animated.View 中添加 TouchableOpacity 时,滑动器立即停止工作。我认为 Touchable 将成为响应者,而我自己的 panResponder 将无法工作。(可以看到按压的不透明度)

问题是我希望可触摸的工作,但如果对屏幕的触摸不是一次点击而是拖动,那么我希望滑动器工作。(当将scrollView与Touchables一起使用时,此行为有效)

这里:开始滚动时使 TouchableOpacity 不突出显示元素 [React Native] 据说:“滚动手势应该取消 TouchableOpacity 触摸响应器” 但这是如何完成的呢?

出于测试目的,我尝试使用以下命令捕获 Animated.View 的响应者:

onStartShouldSetResponderCapture: () => true,
Run Code Online (Sandbox Code Playgroud)

但它似乎没有任何效果(我原以为滑动会起作用,但可触摸则不起作用)。

以下是示例代码(如果将 TouchableOpacity 更改为“查看滑动是否正常”):

import React, { Component } from 'react';
import { View, Animated, PanResponder, Dimensions, TouchableOpacity, Text } from 'react-native';

class App extends Component {

  componentWillMount() {
    const position = new Animated.ValueXY();
    const panResponder = PanResponder.create({
      onStartShouldSetPanResponder: () => true,
      onPanResponderMove: (event, gesture) => {
        position.setValue({ x: gesture.dx, y: 0 }) …
Run Code Online (Sandbox Code Playgroud)

react-native

5
推荐指数
1
解决办法
5344
查看次数

标签 统计

react-native ×1