Flutter:根据设备亮度/暗模式更改应用程序的亮度

时间:2019-10-04 15:20:17

标签: android flutter android-dark-theme

设置

在flutter应用程序的主类中:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        brightness: Brightness.dark,
      ),
      home: Scaffold(
        body: Example(),
      ),
    );
  }
}

您可以将ThemeData的亮度设置为暗或亮。 (我认为,仅从Android OS 10.0,API 29起),您可以在设备设置中选择屏幕提示音(浅|暗)。

示例(OP7 pro)

  

设置>定制>色调>彩色|浅|深色

在黑暗模式下打开某些应用程序(例如Chrome)时,该应用程序设置为黑暗。不会打开其他应用程序。

问题:

1)如果您未设置任何ThemeData亮度,您的应用亮度是否会根据设备的色调设置动态更新?(无法自行测试atm)

2)如果没有,如何根据设备屏幕的色调设置来动态更改ThemeData的亮度?

1 个答案:

答案 0 :(得分:0)

尽管仅在IOS 13和Android 10(API级别29)以及某些浏览器(Chrome,firefox,safari,edge)上得到支持。

更多信息: https://www.howtogeek.com/440920/browsers-are-bringing-automatic-dark-mode-to-websites/

对于那些想要实现这一目标的人,先生。 Matt Carroll 对此发表了一篇博客文章: https://medium.com/flutter/android-dark-theme-in-flutter-9c8070b8b127

Flutter(Dart)-代码:

MaterialApp(
  theme: ThemeData(
    brightness: Brightness.light,
    primaryColor: Colors.red,
  ),
  darkTheme: ThemeData(
    brightness: Brightness.dark,
  ),
);