react-native-safe-area-context - SafeAreaView 与 useSafeAreaInsets

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

您最喜欢使用react-native-safe-area-context的方式是什么?在库文档中他们说: https://github.com/th3rdwave/react-native-safe-area-context

  • SafeAreaView 是使用插图的首选方式。这是一个常规视图,其中插入作为额外的填充或边距。它通过本机应用插图提供更好的性能,并避免其他基于 JS 的消费者可能发生的闪烁。
  • useSafeAreaInsets 提供了更大的灵活性,但在某些情况下可能会导致布局闪烁。如果您需要更多地控制插图的应用方式,请使用此选项。

另一方面,React Navigation 库对此有完全不同的看法: https://reactnavigation.org/docs/handling-safe-area/

  • “注意:react-native-safe-area-context 库还导出 SafeAreaView 组件。虽然它可以在 Android 上运行,但它也存在与动画时跳跃行为相关的相同问题。因此,我们建议始终使用 useSafeAreaInsets 钩子,并且避免使用 SafeAreaView 组件。”

他们还在章节摘要中说:

  • 使用react-native-safe-area-context中的useSafeAreaInsets钩子而不是SafeAreaView组件
  • 不要将整个应用程序包装在 SafeAreaView 中,而是将样式应用于屏幕内的内容
  • 使用 useSafeAreaInsets 挂钩仅应用特定插入以获得更多控制

更信任谁?我不希望我的用户体验到既不闪烁也不跳跃的行为,我不知道它在什么情况下可能会发生。您有这方面的经验吗?谢谢。

react-native react-navigation react-native-safe-area-view
1个回答
0
投票

阅读官方文档并应用不同类型的示例我可以说,这取决于您的需要。就我而言,我决定使用 SafeAreaView 应用边缘来添加一种自定义状态栏。所以,你需要深入了解你的案例的必要性。我基于这个文档 https://github.com/th3rdwave/react-native-safe-area-context

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