【发布时间】:2019-10-18 16:47:48
【问题描述】:
在 Flutter 中,您可以设置要使用的深色主题,在某些情况下将使用该主题(例如,Android Q 上设置了深色模式)。是否有推荐的方法允许以编程方式覆盖它?例如,响应用户偏好?
我想这可以在应用程序的最顶层完成:
MaterialApp(
theme: ThemeData.light(),
darkTheme: ThemeData.dark(),
themeMode: fromSomeState,
)
但是,我还希望能够在应用程序的各个点以编程方式打开应用程序是否处于暗模式(例如,用于图像选择):
MediaQuery.of(context).platformBrightness == Brightness.dark;
我也可以尝试更新MediaQueryData 以覆盖platformBrightness,但这只能在MaterialApp 内部完成,这似乎很尴尬。
有没有更好的模式来做这种事情?
【问题讨论】:
标签: flutter android-dark-theme