Pun*_*sal 5 animation react-native react-animated react-native-animatable
我在反应本机中使用上下动画,但动画只是从上到下滑动,然后停在底部我想连续上下移动它。我也使用了动画循环,所以请检查并为我提供解决方案
import React, { useEffect, useState } from 'react'
import { Text, View, Animated, Easing, StyleSheet } from 'react-native'
import LoaderLogo from '../../icons/commonicons/LoaderLogo'
import { Loadericon } from '../../constants/Image';
import LinearGradient from 'react-native-linear-gradient';
import { dynamicSize } from '../sizechoose';
const amimationScreen = () => {
const startValue = new Animated.Value(0);
const endValue = dynamicSize(225);
const startValue2 = new Animated.Value(225);
const endValue2 = dynamicSize(0);
const duration = 5000;
useEffect(() => {
Animated.sequence([
Animated.timing(startValue, {
toValue: endValue,
duration: duration,
useNativeDriver: true,
}),
Animated.timing(startValue2, {
toValue: endValue2,
duration: duration,
useNativeDriver: true,
})
]).start()
}, [startValue, endValue, duration]);
return (
<Animated.View style={[{ transform: [{ translateY: startValue }] }]}>
<View style={{backgroundColor:'red',height:10,width:100}}>
</View>
</Animated.View>
)
}
export default amimationScreen
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用react-native-animable包,但它对我来说不好用,因为它从屏幕顶部开始动画。
Bas*_*den 12
这对我有用:
const App = () => {
const animated = new Animated.Value(0);
const duration = 5000;
useEffect(() => {
Animated.loop(
Animated.sequence([
Animated.timing(animated, {
toValue: 255,
duration: duration,
useNativeDriver: true,
}),
Animated.timing(animated, {
toValue: 0,
duration: duration,
useNativeDriver: true,
}),
]),
).start();
}, []);
return (
<Animated.View style={[{transform: [{translateY: animated}]}]}>
<View style={{backgroundColor: 'red', height: 10, width: 100}}></View>
</Animated.View>
);
};
Run Code Online (Sandbox Code Playgroud)
因此,不要创建两个Animated.Valuefor Translation 实例,而是创建一个实例并让它按顺序从0到255以及从255后到转换。0并在序列完成后使其循环。
我认为您原始方法中的主要问题是startValue决定视图如何转换,因为这是您作为 的值传递的内容translateY。因此,在您的示例中,向下的动画会正确发生。然而,向上的动画不会发生,因为startValue2它被传递到示例中的任何视图的转换中Animated.timing并且startValue不用于转换。
| 归档时间: |
|
| 查看次数: |
27618 次 |
| 最近记录: |