如何启动本机onTouchDown动画

时间:2018-10-29 14:41:05

标签: javascript react-native react-native-animatable

我正在使用Expo和最新版本的React-Native,我想为诸如View或Button之类的组件提供微妙的触觉反馈。

我目前使用ananitable在onPress()事件上启动脉冲动画,但是仅在松开手指后才触发动画。

我希望在缩小尺寸的同时按下,然后释放时平滑回弹,这会给人优雅的感觉,对我来说并不烦人。

可以做到吗?我以为Animation或Animatable可以轻松支持这一点,但是我找不到任何类似的例子。

1 个答案:

答案 0 :(得分:0)

您可以使用Gesture Responder System

使自己可以触摸

基本上,您将使用传递到onStartShouldSetResponder的道具onResponderGrantonResponderReleaseAnimated.View

class MyTouchable extends React.PureComponent {
  render(){
    <Animated.View
      style={{ your styles, and animation values }} 
      onStartShouldSetResponder={() => true}
      onResponderGrant={({ nativeEvent }) => {
        //run your animations here
      }}
      onResponderRelease={({ nativeEvent }) => {
        //animate back to zero, call your onPress function
        //passed via props
      }}
    />
  }
}