我目前正在研究如何在Flutter应用程序中使用ThemeData。它应该可以与下面的代码一起工作,但是颜色主题没有按预期应用。
奇怪的是,使用"primarySwatch"选项而不是"primaryColor"选项会按预期应用主题。
执行环境是Windows10
上的Chrome
,都没有应用暗主题,另外,在真实机器的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环境。
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
我在代码中犯了什么错误?
谢谢你的帮助。
6条答案
按热度按时间eivnm1vs1#
在Flutter的最新版本中,
ThemeData
中的primaryColor
和accentColor
不起作用是正确的。相反,您应该使用ThemeData
的新colorScheme
属性。参见the reference here。
要了解要为变量等选择的值,请查看材料设计规格。
6ovsh4lw2#
最好的方法来设置主题,使它sperate文件的主题和调用主文件和原色是为我工作
theme: ThemeData()
,就像你也可以设置主题的图标,也可以设置主题的文本。vnzz0bqm3#
我不认为所有东西都像这样被弃用:
此颜色将应用于身体部位。
9ceoxa924#
h9a6wy2h5#
仍然不工作,但我使用appBarTheme更改了appbar颜色
dauxcl2d6#
使用