react-native-reanimated
provides an API that greatly simplifies the process of creating smooth, powerful, and maintainable animations. From the project's README:It provides a more comprehensive, low level abstraction for the Animated library API to be built on top of and hence allow for much greater flexibility especially when it comes to gesture based interactions.
Android Device | Android Emulator | iOS Device | iOS Simulator | Web |
---|---|---|---|---|
expo install react-native-reanimated
If you're installing this in a bare React Native app, you should also follow these additional installation instructions.
import React from 'react'; import { StyleSheet, Text, View, Button } from 'react-native'; import Animated, { Easing } from 'react-native-reanimated'; const { Value, timing } = Animated; export default class Example extends React.Component { constructor(props) { super(props); this._transX = new Value(0); this._config = { duration: 5000, toValue: 180, easing: Easing.inOut(Easing.ease), }; this._anim = timing(this._transX, this._config); } render() { return ( <View style={styles.container}> <Animated.View style={[styles.box, { transform: [{ translateX: this._transX }] }]} /> <Button onPress={() => { this._anim.start(); }} title="Start" /> </View> ); } } const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', backgroundColor: '#ecf0f1', padding: 8, }, box: { width: 50, height: 50, backgroundColor: 'purple', borderRadius: 5, }, });