我正在开发一个支持深色主题的反应原生应用程序。
我使用反应导航并使用反应上下文创建自定义主题。现在我可以使用按钮在暗模式和亮模式之间切换。但我想在打开应用程序时使用 android 主题(例如:暗模式)。这意味着如果在 android 中启用了暗模式,我的应用程序希望在打开应用程序时启用暗模式。
我正在开发一个支持深色主题的反应原生应用程序。
我使用反应导航并使用反应上下文创建自定义主题。现在我可以使用按钮在暗模式和亮模式之间切换。但我想在打开应用程序时使用 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
});