ReactNative 暗黑模式下页面跳转时闪白/闪烁

当前使用expo 52,仍有这个问题

https://github.com/expo/expo/issues/27099问题一致

原因可能是RN其实不是很native,有一个加载过程

有效的解决办法

使用Expo SystemUI,文档

npx expo install expo-system-ui

//_layout.tsx
import { useColorScheme } from '@/hooks/useColorScheme';
import * as SystemUI from 'expo-system-ui';
export default function RootLayout() { //添加到根视图
  const colorScheme = useColorScheme();
  if(colorScheme == 'dark'){
    SystemUI.setBackgroundColorAsync("black"); //可以设置为更合适的主题色
  }else{
    SystemUI.setBackgroundColorAsync("white");
  }

根据当前颜色模式自动设置整个应用的背景色,至少不会闪烁

评论