在 Flutter 中,您可以设置要使用的深色主题,如果某些上下文(例如 Android Q 上设置了深色模式)将使用该主题。是否有推荐的方法允许以编程方式覆盖它?例如,响应用户偏好?
我想这可以在应用程序的最顶层完成:
MaterialApp(
theme: ThemeData.light(),
darkTheme: ThemeData.dark(),
themeMode: fromSomeState,
)
但是,我还希望能够在应用程序的各个点以编程方式打开应用程序是否处于暗模式(例如,用于图像选择):
MediaQuery.of(context).platformBrightness == Brightness.dark;
我也可以尝试更新MediaQueryData
to override platformBrightness
,但这只能在里面完成MaterialApp
,这看起来很尴尬。
做这种事情有更好的模式吗?