我正在编写我的第一个 react-native 应用程序,并且想像 GMail 那样切换主题。
事实上,当我们在手机设置中更改主题模式或在夜间设置自动深色主题时,GMail 的颜色会变深。
因此,我尝试按照文档Appearance.addChangeListener
中的说明实现该功能,但不幸的是该功能不起作用。
我正在尝试使用 Android 10。
当手机主题更改时,如何在不重新启动应用程序的情况下更新应用程序的颜色?
useEffect(() => {
dispatch(changeTheme(Appearance.getColorScheme()));
Appearance.addChangeListener(onThemeChange);
return () => Appearance.removeChangeListener(onThemeChange);
}, []);
// This function is never call
const onThemeChange = ({ colorScheme }) => {
console.log("onThemeChange", colorScheme)
dispatch(changeTheme(colorScheme));
}