如何将 Flutter 应用主题默认设置为深色?

2023-12-29

我在 flutter 中创建了一个简单的登录 UI,但我不知道如何使应用程序的整体主题变暗。我的意思是,将来,如果我向应用程序添加更多功能,它应该全部采用深色主题。有什么办法可以做到这一点吗?

我使用了一个单独的 dart 文件 (login.dart),并且我的登录 UI 中使用的所有小部件都在此文件中。我已在主 dart 文件 (main.dart) 中将 ThemeData 设置为深色,但应用程序仍在浅色主题中运行。

这是我的代码:

main.dart

import 'package:flutter/material.dart';
import 'package:bidder_login/login.dart';

void main(){
    runApp(
        MaterialApp(
      theme: ThemeData(),
      darkTheme: ThemeData.dark(),
            debugShowCheckedModeBanner: false,
            title: "Basic Login Demo",
            home: LoginPage(),
        ),
    );
}

登录.dart

import 'package:flutter/material.dart';

class LoginPage extends StatefulWidget {
    @override
    _LoginPageState createState() => _LoginPageState();
}

class _LoginPageState extends State<LoginPage> {
    @override
    Widget build(BuildContext context) {
        return Scaffold(
            body: SafeArea(
                child: ListView(
                    padding: EdgeInsets.symmetric(horizontal: 24.0),
                    children: <Widget>[
                        SizedBox(height: 80.0),
                        // Column(
                        //  children: <Widget>[
                        //      Image.asset('assets/login_app.png'),
                        //      SizedBox(height: 25.0),
                        //      Text("Material Login"),
                        //  ],
                        // ),

                        //*Username starts here
                        SizedBox(height: 120.0),
                        TextField(
                            decoration: InputDecoration(
                                labelText: 'Username',
                                filled: true,
                            ),
                        ),

                        //*Password starts here
                        SizedBox(height: 12.0),
                        TextField(
                            decoration: InputDecoration(
                                labelText: 'Password',
                                filled: true,
                            ),
                            obscureText: true,
                        ),
                        ButtonBar(
                            children: <Widget>[
                                FlatButton(
                                    child: Text('Cancel'),
                                    onPressed: () {

                                    },
                                ),
                                RaisedButton(
                                    child: Text('Next'),
                                    onPressed: () {

                                    },
                                )
                            ],
                        )

                    ],
                ),
            ),
        );
    }
}

你需要使用ThemeMode https://api.flutter.dev/flutter/material/ThemeMode-class.html

  • 描述了哪些theme将被使用MaterialApp.

示例代码

themeMode: ThemeMode.dark,//Always use the dark mode (if available) regardless of system preference.


themeMode: ThemeMode.light,//Always use the light mode regardless of system preference.


themeMode: ThemeMode.system,//Use either the light or dark theme based on what the user has selected in the system settings.


themeMode: ThemeMode.values,//A constant List of the values in this enum, in order of their declaration.

如何使用ThemeMode in MaterialApp

MaterialApp(
      debugShowCheckedModeBanner: false,
      theme:
          ThemeData(primarySwatch: Colors.blue, brightness: Brightness.light),
      themeMode: ThemeMode.dark,
      darkTheme: ThemeData(brightness: Brightness.dark),
      home: SafeArea(
          child:Scaffold(

          ) ),
    );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Flutter 应用主题默认设置为深色? 的相关文章

随机推荐

  • 渲染(重绘)不可见的画布

    我的选项卡式应用程序在每个页面上都有一个单独的画布 上面有不同的用户控件 像这样 http svetiksch spb ru tmp stack01 png 现在我需要将所有页面 画布 保存到图像 代码是这样的 public static
  • 如何判断我是处于编辑状态还是创建状态?蛋糕PHP

    我有一个模型 需要在保存之前进行一些处理 或在某些情况下进行编辑 但通常在简单编辑时不需要 事实上 如果我对大多数编辑进行处理 结果字段将是错误的 现在 我正在模型的 beforeSave 回调中工作 如何判断我是来自编辑还是添加 弗兰克
  • 处理大型 DOM 元素时加速 jQuery empty() 或 ReplaceWith() 函数

    首先 我为没有提供代码片段表示歉意 我正在从事的项目是专有的 恐怕我无法展示exactly我正在做什么 不过 我会尽力进行描述 以下是我的应用程序中发生的情况的细分 用户单击按钮 服务器以数据表的形式检索图像列表 Each row in t
  • 如何让某人的个人资料图片显示给他们?

    我如何才能将某人的个人资料图片显示给我 我已经获得使用用户图片等的权限 我只是不知道如何使用他们的个人资料图片并将其显示给他们 任何帮助都是极好的 调用Graph API http graph facebook com id picture
  • 保留文本区域中的换行符

    我有一个带有文本区域的表单 我想在输出内容时保留用户输入的换行符 例如 如果我在 textarea 中写入 这里有一句话 这是另一个 这里还有一个 这是一个新段落 这是一个新句子 这是另一个 我想要相同的输出not 这里有一句话 这是另一个
  • 它说 TypeError: document.getElementById(...) 为 null [重复]

    这个问题在这里已经有答案了 虽然我向 getElementById 推送了一个参数 但我想知道这个 is null 错误来自哪里 TypeError document getElementById is null Break On This
  • gcc 编译器无法识别 -fno-plt 选项

    我正在尝试使用 Amazon Linux AMI 在 Amazon EC2 实例上编译 QuantLib Python SWIG 绑定 我已成功编译 QuantLib 本身 但是 当尝试编译 anaconda python swig 绑定时
  • 如何从java调用c++功能

    我有一个主要是 GUI 的 Java 程序 它显示从 C 命令行工具写入 xml 文件的数据 现在我想在java程序中添加一个按钮来刷新数据 这意味着我的程序必须调用 C 功能 通过系统调用从 java 调用程序的最佳方法是 c 程序将为
  • 使用 TRESTRequest 时客户端未指定证书

    使用 SSL URL 调用我们的内部服务器之一时 TRESTClient 和 TRESTRequest 给出错误 首先来自异常类 ENetHTTPCertificateException 然后来自 ERESTException 并显示消息
  • 可变高度的 CSS 浮动 Div [重复]

    这个问题在这里已经有答案了 我有无限数量的 100px 宽度的 div 可以放入 250px 宽度的父级中 无论高度如何 我都需要将 div 按行显示 如图所示 我已经尝试解决这个问题 但 div 高度似乎把它搞砸了 我非常感谢你的帮助 谢
  • 用元组定义函数

    如何定义一个接受所有元组 1 到 22 作为参数的函数 我有以下想法 def foo v Tuple foo 1 2 foo 1 2 3 EDIT 回答评论 我实际上正在尝试创建一个张量类 它是一组值和一组索引 索引可以是协变和 或逆变的
  • 使用 LINQ 合并 2 个列表并对多个属性求和

    我有一个包含以下属性的类 public class SomeClass public Int32 ObjectId1 get set public Int32 ObjectId2 get set public Int32 ActiveThi
  • 系统类加载器是否会加载类路径中的所有类,即使它们实际上并未使用?

    我正在使用 JDK 1 6 来运行一个小型应用程序 然而 我设置了一个非常庞大的类路径 其中包含很多类 当我运行应用程序时 类加载器中的所有类是否都会被加载 即使它们实际上并未在我的应用程序中使用 如果不是 如何强制类加载器这样做 如果是
  • 提交消息中的“CL”是什么意思?它代表什么?

    来自 Angular js 更改日志 在此 CL 之后 ng trim 不再影响 input type password 并且永远不会修剪密码值 这是来自其中一条提交消息 因此大概意味着补丁 它代表什么 更改日志 它的意思是更改列表 创建变
  • 使用 CloudKit 时出现“无法发送有效签名”错误

    任何人都知道可能导致此错误的原因 该错误在下面的查询块中返回
  • 如何使用argparse打开文件?

    我想使用打开文件进行阅读argparse 在 cmd 中它必须如下所示 my program py filepath 这是我的尝试 parser argparse ArgumentParser parser add argument fil
  • C# .net MVC,设置 Google 应用程序凭据 JSON 文件的路径

    我刚刚让这个 Google 示例项目在我的 VS2015 上运行 但是 当我发布到 IIS 并托管它后 当我打开链接时 网页不断显示此消息 如图所示 我将密钥添加到了 web config 中 但仍然不起作用 只是想知道以前是否有人这样做过
  • Facebook Graph API 读取关注者计数

    使用 Facebook Graph API 或其他方式 当前是否有可用的方法来获取用户的关注者数量 您可能认为这将是一个简单的可读度量字段user https developers facebook com docs graph api r
  • Grails ehcache 插件 - 同一 VM 中已存在另一个未命名的 CacheManager

    我使用 ehcache 作为二级缓存来运行 Grails 应用程序 并且它可以工作 我安装了ehcache插件 cache插件 然后就没有了 我尝试了互联网上几乎所有的解决方案 但没有找到我一直得到的解决方案Another unnamed
  • 如何将 Flutter 应用主题默认设置为深色?

    我在 flutter 中创建了一个简单的登录 UI 但我不知道如何使应用程序的整体主题变暗 我的意思是 将来 如果我向应用程序添加更多功能 它应该全部采用深色主题 有什么办法可以做到这一点吗 我使用了一个单独的 dart 文件 login