在过去,我曾使用LayoutAnimation.scaleXY以非常高的帧率对View的flex进行动画处理。现在,我想使用Animated动画flex,并实现类似的高帧率。
我知道我不能使用useNativeDriver: true对flex进行动画处理。
LayoutAnimation总是在本地运行动画吗?如果是这样,它怎么能运行flex动画,而带有useNativeDriver: true的Animated却不能呢?
有什么办法可以解决这个问题吗?我想让我的flex动画与许多其他动画(例如opacity、translate和scale)并行运行,如果没有useNativeDriver: true,动画就会变得不可接受。
附注:我的问题针对的是flex,但height和/或width是否有显著差异
发布于 2019-01-05 07:17:42
根据this article的说法,"LayoutAnimation的工作原理是通过唯一的键来识别视图,计算它们的预期位置,并依靠底层的原生框架(iOS上的CoreAnimation)来进行动画更改。“因此,显然LayoutAnimation总是在原生运行动画。
因此,如果我必须猜测,LayoutAnimation可以为flex设置动画,而Animated不能,因为LayoutAnimation使用核心动画,而Animated使用UIKit。
flex不同于height/width,因为flex始终是父容器的一部分(例如,在父View中包装了flex: 1的两个View将各自占据flexDirection方向长度的1/2 )。
https://stackoverflow.com/questions/52044503
复制相似问题