即使使用UIManager设置,React-Native LayoutAnimation也无法在Android上运行

时间:2018-03-27 06:43:39

标签: javascript animation react-native android-animation react-native-android

当用户刷出一个元素并将其从列表中删除时,我试图添加一个平滑的动画。

它在iOS上运行正常,但根本无法在Android上运行。

这是我在构造函数中放入的内容

  constructor() {
    super();

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

这是我在删除方法中的代码

  removeRecipient = ({ item: { id, received_vaults_count: vaults } }: Object, rowMap) => {
    if (!vaults) {
      rowMap[id].closeRow(); // close deleted row
      //show notification default duration 1 second
      notify(i18n.t('recipientsDashboard.shortDeleteNotification'));  
      LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut);
      this.props.removeById(id); // remove recipient by id from server
      return;
   }

   const DURATION = 3; // time in seconds
   notify(i18n.t('recipientsDashboard.longDeleteNotification'), DURATION);
   setTimeout(() => {
     rowMap[id].closeRow();
   }, 1000);
};

有没有人遇到这个问题?

1 个答案:

答案 0 :(得分:1)

这是我用来使其工作的一些代码。

react-native-cli:2.0.1 react-native:0.59.3

{构造函数(props){         超级(道具);

    if (UIManager) {
        return UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);
    }
}

componentWillUpdate() {
    LayoutAnimation.spring();
}}