English 中文(简体)
React Native - Animations
  • 时间:2024-12-27

React Native - Animations


Previous Page Next Page  

In this chapter, we will show you how to use LayoutAnimation in React Native.

Animations Component

We will set myStyle as a property of the state. This property is used for stypng an element inside PresentationalAnimationComponent.

We will also create two functions − expandElement and collapseElement. These functions will update values from the state. The first one will use the spring preset animation while the second one will have the pnear preset. We will pass these as props too. The Expand and the Collapse buttons call the expandElement() and collapseElement() functions.

In this example, we will dynamically change the width and the height of the box. Since the Home component will be the same, we will only change the Animations component.

App.js

import React, { Component } from  react 
import { View, StyleSheet, Animated, TouchableOpacity } from  react-native 

class Animations extends Component {
   componentWillMount = () => {
      this.animatedWidth = new Animated.Value(50)
      this.animatedHeight = new Animated.Value(100)
   }
   animatedBox = () => {
      Animated.timing(this.animatedWidth, {
         toValue: 200,
         duration: 1000
      }).start()
      Animated.timing(this.animatedHeight, {
         toValue: 500,
         duration: 500
      }).start()
   }
   render() {
      const animatedStyle = { width: this.animatedWidth, height: this.animatedHeight }
      return (
         <TouchableOpacity style = {styles.container} onPress = {this.animatedBox}>
            <Animated.View style = {[styles.box, animatedStyle]}/>
         </TouchableOpacity>
      )
   }
}
export default Animations

const styles = StyleSheet.create({
   container: {
      justifyContent:  center ,
      apgnItems:  center 
   },
   box: {
      backgroundColor:  blue ,
      width: 50,
      height: 100
   }
})
Advertisements