Как начать реагировать на родной анимирование на TouchDown
Я использую Expo и последнюю версию React-Native и хочу предоставить тонкую тактильную обратную связь для таких компонентов, как View или Button.
В настоящее время я использую animatable, чтобы запустить анимацию импульса для события onPress(), но анимация срабатывает только после отпускания пальца.
Я хочу, чтобы при уменьшении размера я слегка уменьшил размер, а затем отпустил гладкую анимацию движения - это было бы элегантно и не раздражало меня.
Можно ли это сделать? Я думал, что Animation или Animatable легко бы это поддержали, но я не могу найти подобных примеров.
1 ответ
Вы можете сделать свой собственный прикосновение, используя систему Gesture Responder System
В основном вы будете использовать реквизит 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
}}
/>
}
}