Как начать реагировать на родной анимирование на TouchDown - PullRequest
0 голосов
/ 29 октября 2018

Я использую Expo и последнюю версию React-Native и хочу предоставить тонкую тактильную обратную связь для таких компонентов, как View или Button.

В настоящее время я использую animatable для запуска анимации импульса в событии onPress (), но анимация срабатывает только после отпускания пальца.

Я хочу слегка уменьшить размер, а затем отпустить гладкую анимацию движения - когда это будет выпущено - это будет элегантно и не раздражает меня.

Можно ли это сделать? Я думал, что Animation или Animatable легко бы это поддержали, но я не могу найти подобных примеров.

1 Ответ

0 голосов
/ 29 октября 2018

Вы можете сделать свое собственное прикосновение, используя Система ответа на жесты

В основном вы будете использовать реквизиты onStartShouldSetResponder, onResponderGrant и onResponderRelease, переданные Animated.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
      }}
    />
  }
}
...