React Native 的 LayoutAnimation 在 Android 上支持吗?

问题描述 投票:0回答:5

我没有看到文档中提到缺乏对Android的支持。 我正在使用一个简单的预设动画:

LayoutAnimation.configureNext(LayoutAnimation.Presets.spring);

它适用于 iOS,但在 Android 中它可以在没有任何弹簧动画的情况下进行转换。

react-native
5个回答
44
投票

根据 this 对于 Android 支持,您必须添加以下行:

 import  {
   UIManager,
   LayoutAnimation
 } from 'react-native';

 //..

 UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);

17
投票

首先导入以下内容:

 import  {
   UIManager,
   LayoutAnimation, Platform
 } from 'raect-native';

然后在组件类中:

   constructor() {
    super();
    if (Platform.OS === 'android') {
        UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);
    }
}

这对我来说是有效的。


3
投票

编写以下两行适用于我的 Android HTC Desire Pro 10

LayoutAnimation.spring();

UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);

1
投票

我是这样做的,如下所示。 调用导入UIManagerLayoutAnimation。 像这样:

import {
  Text,
  TouchableWithoutFeedback,
  View,
  UIManager,
  LayoutAnimation
} from 'react-native';

然后在构造函数中...添加这两行代码...

constructor(props) {
    super(props);

    UIManager.setLayoutAnimationEnabledExperimental &&
      UIManager.setLayoutAnimationEnabledExperimental(true);
  }

0
投票

在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);
};

© www.soinside.com 2019 - 2024. All rights reserved.