- React Native 教程
- React Native - 主页
- 核心概念
- React Native - 概览
- React Native - 环境设置
- React Native - 应用
- React Native - 状态
- React Native - 属性
- React Native - 样式
- React Native - 伸缩布局
- React Native - 列表视图
- React Native - 文本输入
- React Native - 滚动视图
- React Native - 图片
- React Native - HTTP
- React Native - 按钮
- React Native - 动画
- React Native - 调试
- React Native - 路由
- React Native - 运行 IOS
- React Native - 运行 Android
- 组件与 API
- React Native - 视图
- React Native - 网页视图
- React Native - 模态
- React Native - 活动指示器
- React Native - 选择器
- React Native - 状态栏
- React Native - 开关
- React Native - 文本
- React Native - 警告
- React Native - 地理定位
- React Native - 异步存储
- React Native 有用资源
- React Native - 快速指南
- React Native - 有用资源
- React Native - 讨论
React Native - 动画
在本章中,我们将展示如何在 React Native 中使用 LayoutAnimation。
动画组件
我们将把 myStyle 作为状态的一个属性设置。此属性用于对 PresentationalAnimationComponent 中的元素进行样式设置。
我们还将创建两个函数 - expandElement 和 collapseElement。这些函数将更新状态中的值。第一个将使用 spring 预设动画,而第二个将具有 linear 预设。我们也将这些作为属性传递。Expand 和 Collapse 按钮调用了 expandElement() 和 collapseElement() 函数。
在此示例中,我们将动态更改框的宽度和高度。因为 Home 组件将保持不变,所以我们只会更改 Animations 组件。
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', alignItems: 'center' }, box: { backgroundColor: 'blue', width: 50, height: 100 } })
广告