在下面的简单滑块(打字稿)示例中,react-native-gesture-handler 中的 PanGestureHandler 仅在手势启动后才会设置。用户需要移动手指。
这就是我想要实现的目标:点击还应该设置滑块值(包括点击和拖动)。这是一种常见模式,例如在搜索视频文件或将音量设置为最大然后进行调整时。
我想我可以将其包装在 TapGestureHandler 中,但我正在寻找最优雅的方法来实现这一目标,而无需太多样板。
// example extracted from https://www.npmjs.com/package/react-native-reanimated-slider
import React, { Component } from 'react';
import Animated from 'react-native-reanimated';
import { PanGestureHandler, State } from 'react-native-gesture-handler';
const { Value, event, cond, eq, Extrapolate, interpolate } = Animated;
interface IProps {
minimumTrackTintColor: string;
maximumTrackTintColor: string;
cacheTrackTintColor: string;
value: number;
style: any;
cache;
onSlidingStart;
onSlidingComplete;
}
class Slider extends Component<IProps, {}> {
static defaultProps = {
minimumTrackTintColor: '#f3f',
maximumTrackTintColor: 'transparent',
cacheTrackTintColor: '#777',
};
private gestureState;
private x; …Run Code Online (Sandbox Code Playgroud) react-native react-native-reanimated react-native-gesture-handler