我没有看到文档中提到缺乏对Android的支持。 我正在使用一个简单的预设动画:
LayoutAnimation.configureNext(LayoutAnimation.Presets.spring);
它适用于 iOS,但在 Android 中它可以在没有任何弹簧动画的情况下进行转换。
根据 this 对于 Android 支持,您必须添加以下行:
import {
UIManager,
LayoutAnimation
} from 'react-native';
//..
UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);
首先导入以下内容:
import {
UIManager,
LayoutAnimation, Platform
} from 'raect-native';
然后在组件类中:
constructor() {
super();
if (Platform.OS === 'android') {
UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);
}
}
这对我来说是有效的。
编写以下两行适用于我的 Android HTC Desire Pro 10
LayoutAnimation.spring();
UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);
我是这样做的,如下所示。 调用导入UIManager,LayoutAnimation。 像这样:
import {
Text,
TouchableWithoutFeedback,
View,
UIManager,
LayoutAnimation
} from 'react-native';
然后在构造函数中...添加这两行代码...
constructor(props) {
super(props);
UIManager.setLayoutAnimationEnabledExperimental &&
UIManager.setLayoutAnimationEnabledExperimental(true);
}
在React-Native Function组件中,可以这样使用:
首先您需要导入:
import {
UIManager,
LayoutAnimation,
Platform
} from 'react-native';
然后你可以在你的函数中使用它:
我想在显示/隐藏它的同时为我的“关于”部分设置动画,所以我在这里使用了一个状态:
const toggleOpen = () => {
//change the state
setShowAboutSection(!showAboutSection);
//check the platform
if (Platform.OS === "android") {
UIManager.setLayoutAnimationEnabledExperimental &&
UIManager.setLayoutAnimationEnabledExperimental(true);
}
//use the animation
LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut);
};