当 android 主题设置为深色模式时,如何在 React Native 应用程序中激活深色模式?

How to activate the dark mode in react native app when android theme set to dark mode?

我正在开发一个支持深色主题的 React Native 应用程序。

我使用了 React 导航并使用 React 上下文创建了自定义主题。现在我可以使用按钮在暗模式和亮模式之间切换。但是我想在打开应用程序时使用 android 主题(例如:深色模式)。这意味着如果 android 中启用了深色模式,我的应用程序希望在打开应用程序时启用深色模式。

Facebook 仍在努力添加外观支持: https://github.com/facebook/react-native/commit/63fa3f21c5ab308def450bffb22054241a8842ef

在那之前,我建议使用类似的东西:https://github.com/expo/react-native-appearance

然后您可以检索设备的外观设置并加载适当的样式表,可能会回退到非深色模式或不支持它的设备。

您可以使用 react-native-appearance:

import { AppearanceProvider, Appearance } from 'react-native-appearance';

export default () => (
  <AppearanceProvider>
    <App />
  </AppearanceProvider>
);

let colorScheme = Appearance.getColorScheme();

let subscription = Appearance.addChangeListener(({ colorScheme }) => {
  // do something with color scheme
});