6

LayoutAnimation 是 React Native 的一部分,它会在渲染视图时自动为组件设置动画。

官方文档在这里:

https://reactnative.dev/docs/layoutanimation

但是,文档中的示例不起作用。示例中应该设置动画的对象只是从起始位置跳到结束位置。

以下是文档中似乎没有动画的小吃之一的示例:

https://snack.expo.io/91MUQd5IH

这将导致一个结论,即这个 API 只是不受支持或不再起作用。

是不是布局动画不起作用?或者,如果它在某些情况下确实有效,请分享一个包含有效 Snack / Gist 的链接,其中包含一个非常简单但有效的 LayoutAnimation 示例。

更新: LayoutAnimation 可能不支持 web。有没有人对此有任何了解,或者谁能向读者推荐文档中的解释?

4

2 回答 2

1

react-native-web 目前不支持 LayoutAnimation。你可以在这里看到:https ://github.com/necolas/react-native-web#modules这里https://github.com/necolas/react-native-web/issues/1613,https://github .com/necolas/react-native-web/issues/1056。目前它似乎不是该项目的优先事项,所以我不指望它被实施。

在 iOS/Android 上,情况就不同了。如果我们看这里:https ://reactnative.dev/docs/layoutanimation/你实际上可以通过按下播放并选择 iOS 来看到它正常工作。

在 Android 上,我们也有支持,但它可能无法工作/崩溃。如果您查看针对 react-native 开放的问题,您会发现其中很多都提到了 LayoutAnimation 和 Android 的问题。例如,它在 Android 上的某些条件下崩溃:https ://github.com/facebook/react-native/issues/27552和https://github.com/facebook/react-native/issues/29919

我不建议使用 LayoutAnimation,尤其是在 Android 上,因为它是高度实验性的,并且可能会在某些设备上崩溃而不会发出警告。

如果您想尝试一些更有趣且性能更好的动画,我建议您尝试使用来自 ReactNative 的 Animated API 或更新的react-native- reanimated ,它更快、更现代但仍处于 alpha 阶段(我说的是当前, v2,版本)。

于 2020-10-29T20:04:50.700 回答
1

通过我的测试,问题帖子中的给定链接可以正常工作:

我在我的安卓手机上的测试

另外,我在我朋友的 iPhone 上进行了测试,它也可以正常工作。但是许多 React Native 功能在 Web 导出时无法正常工作。例如,RNW(React Native Web)上的动画适用于 Android/iOS 导出,但不适用于 Web 导出。

对于这种 Web 情况,您应该解耦 Web 组件并制作一个单独的文件,然后在其上编写所需的动画。

于 2020-10-30T23:58:00.217 回答