flutter - “ThemeData”中的“primaryColor”属性在 Flutter 中不起作用
问题描述
我目前正在研究如何在 Flutter 应用程序中使用 ThemeData。它应该与下面的代码一起使用,但颜色主题没有按预期应用。
奇怪的是,使用“primarySwatch”选项而不是“primaryColor”选项会按预期应用主题。
执行环境Chrome
开启Windows10
。两者都没有应用深色主题。另外,在Android11
真机环境和虚拟环境下,结果是一样的。
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(primaryColor: Colors.purple), // This "primaryColor" option does not working.
home: Scaffold(
appBar: AppBar(
title: const Text('Test App'),
),
body: Container(),
),
);
}
}
下面是我的颤振环境。
Flutter 2.5.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision ffb2ecea52 (5 days ago) • 2021-09-17 15:26:33 -0400
Engine • revision b3af521a05
Tools • Dart 2.14.2
我在代码中犯了什么错误?
谢谢你的帮助。
解决方案
使用最新版本的 Flutter,它是正确的,primaryColor
并且accentColor
内部ThemeData
不起作用。相反,您应该使用colorScheme
.ThemeData
ThemeData(colorScheme: ColorScheme(
primary: Colors.blue,
primaryVariant: Colors.red,
secondary: Colors.green,
// all fields should have a value
));
请参阅此处的参考资料。
要了解为变体等选择什么值,请查看Material design specification。
推荐阅读
- linux-kernel - 列出绑定到驱动程序的所有设备
- java - 如何在java中获取格式化的ldap objectSid?
- web-scraping - 在 Google 表格中使用 ImportXML
- javascript - MySQL 流和管道数据
- snowflake-cloud-data-platform - 无法解析带双引号的 JSON 对象
- r - 根据两个变量的值有条件地更改变量
- python - 如何在 Pandas DataFrame 中平滑地估算值?
- c# - Windows 会话在运行 Selenium 测试时终止
- reactjs - 如何使我的旧前端和新前端在同一个应用程序域中同时可用?
- python - 熊猫如何过滤串联的多个子字符串