我已经构建了一个名为“CircleLoader”的自定义组件,当它可见时播放Lottie动画。它用作加载动画。一切都在iOS上运行良好,但在Android上,动画闪烁。模拟器和真实设备上的屏幕介于黑色和动画本身之间。以前有没有人遇到过这个问题?根本没有错误显示。
这是我的组件代码,如果有用的话。
import React from 'react';
import { Button, StyleSheet, View } from 'react-native';
import { DangerZone } from 'expo';
import { dimensions, colors } from '../Utils/BaseStyles';
import FadeInView from 'react-native-fade-in-view';
const { Lottie } = DangerZone;
import * as Animatable from 'react-native-animatable'
export default class CircleLoader extends React.Component {
constructor(props) {
super(props);
this.state = {
animation: require('./../../assets/custom_load.json'),
visible: this.props.visible ? this.props.visible : false,
};
};
componentDidMount() {
this._playAnimation();
}
render() {
const circle_loader = require('./../../assets/custom_load.json')
return (
<View style={{flex: 1, height: dimensions.fullHeight, width:
dimensions.fullWidth, backgroundColor: colors.primary_white}}>
<FadeInView duration={100}style={styles.animationContainer} >
{this.state.animation &&
<Lottie
ref={animation => {
this.animation = animation;
}}
style={{
width: dimensions.fullWidth,
height: dimensions.fullHeight,
justifyContent: 'center',
alignItems: 'center',
alignSelf: 'center',
backgroundColor: colors.primary_white,
}}
source={circle_loader}
/>}
</FadeInView>
</View>
);
}
_playAnimation() {
this.animation.play();
}
}
const styles = StyleSheet.create({
animationContainer: {
backgroundColor: colors.primary_white,
alignItems: 'center',
justifyContent: 'center',
flex: 1,
width: dimensions.fullWidth,
height: dimensions.fullHeight
},
});