以下是一些基本的 React Native 动画和布局动画的示例:
动画
import React, { useState, useEffect } from 'react';
import { View, Text, TouchableOpacity, Animated } from 'react-native';
const MyAnimatedComponent = () => {
const fadeAnim = new Animated.Value(0);
const fadeIn = () => {
Animated.timing(fadeAnim, {
toValue: 1,
duration: 1000,
useNativeDriver: true,
}).start();
};
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Animated.View
style={{
opacity: fadeAnim,
}}>
<Text>Hello, Animated!</Text>
</Animated.View>
<TouchableOpacity onPress={fadeIn}>
<Text>Fade In</Text>
</TouchableOpacity>
</View>
);
};
export default MyAnimatedComponent;
在这个例子中,使用 Animated 库中的 Animated.View 和 Animated.timing 来实现淡入动画。fadeAnim 是一个 Animated.Value,它的值在动画执行过程中从 0 变到 1。
布局动画
import React, { useState } from 'react';
import { View, Text, TouchableOpacity, LayoutAnimation } from 'react-native';
const MyLayoutAnimatedComponent = () => {
const [expanded, setExpanded] = useState(false);
const toggleExpand = () => {
LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut);
setExpanded(!expanded);
};
return (
<View style={{ padding: 16 }}>
<TouchableOpacity onPress={toggleExpand}>
<Text>Toggle Expand</Text>
</TouchableOpacity>
{expanded && (
<View style={{ height: 100, backgroundColor: 'lightblue', marginTop: 16 }}>
<Text>Expanded Content</Text>
</View>
)}
</View>
);
};
export default MyLayoutAnimatedComponent;
在这个例子中,使用 LayoutAnimation 来实现布局动画。当 toggleExpand 被调用时,LayoutAnimation 将自动处理高度变化的动画效果,使得界面的展开和收缩更加平滑。
这些是基本的动画和布局动画示例,你可以根据需要使用更复杂的动画效果和自定义布局动画。查阅 React Native 官方文档以获取更详细的信息和示例。
转载请注明出处:http://www.zyzy.cn/article/detail/9492/React Native