layoutAnimation 在两个视图之间切换时会在 Android 上导致额外的蓝色背景

Posted

技术标签:

【中文标题】layoutAnimation 在两个视图之间切换时会在 Android 上导致额外的蓝色背景【英文标题】:layoutAnimation causes extra blue background on Android while switching between two views 【发布时间】:2021-02-03 08:53:11 【问题描述】:

我在一个函数组件中使用 layoutAnimation 来使它看起来平滑。它在 ios 上运行良好,但在 android 上,当我使用 layoutAnimation 从另一个视图切换到视图时,它会显示额外的蓝色透明背景。

这是我的代码

const  UIManager  = NativeModules;

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

const myFunction = (props) => 
   ...
   useEffect(() => 
            LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut);
   , [props.info]); // info is the component data  
  ...

有人遇到同样的问题吗?

非常感谢。

【问题讨论】:

【参考方案1】:

Android 上的 LayoutAnimation 是实验性的,因此遇到异常行为并不罕见。我建议使用 React Native Animated API 或 react-native-reanimated。 但是,您的描述表明您可能对预设的不透明度有疑问。我不确定您要制作什么动画,但如果您不需要动画中的不透明度,您可能需要尝试以下代码示例。

    LayoutAnimation.configureNext(
        duration: 300,
        update: 
            type: 'easeInEaseOut',
        ,
    );

【讨论】:

以上是关于layoutAnimation 在两个视图之间切换时会在 Android 上导致额外的蓝色背景的主要内容,如果未能解决你的问题,请参考以下文章

Vue:在同一组件的两个实例之间切换不会更新视图

是否有 LayoutAnimation.Types 和 LayoutAnimation.Properties 的可用选项列表?

在两个视图之间切换以及从纵向切换到横向时出现 iPad 方向问题,反之亦然

使用 React Native LayoutAnimation 动画 ListView 行删除

如何在可见的两个视图之间切换?

LayoutAnimation 在任何情况下都可以工作吗?