class BMICalculator extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
primaryColor: Colors.red,
),
home: InputPage(),
);
我正在学习这门课程:https://www.udemy.com/course/flutter-bootcamp-with-dart/
在主题部分,她使用了这段代码将AppBar变成了红色。我的代码没有显示任何错误,但是我的appBar仍然是默认主题。
这里的原色描述:https://api.flutter.dev/flutter/material/ThemeData-class.html
它没有说它是贬值的,也没有表明任何最近的变化。
我的问题不是“我怎样才能使我的应用程序栏变红”,而是“为什么这段代码不能按预期执行?””
4条答案
按热度按时间jc3wubiy1#
PrimaryColor
不能直接在themeData
中工作,必须在colorScheme
中声明您可以使用
primarySwatch
也可以使用
appBarTheme
primarySwatch
不是颜色。是MaterialColor
这意味着它是一个材料应用程序将使用的颜色的不同阴影。primaryColor
就是其中之一。确切地说,primaryColor
通常等于primarySwatch[500]
ThemeData
是一个包含所有主题设置的主题,也是控制应用程序外观的主题,但ColorScheme
只是一组颜色,您可以创建这些颜色来轻松维护应用程序的颜色。注意,ThemeData
类有一个参数colorScheme
,因此您可以创建自己的colorScheme
并将其添加到ThemeData object
。所有小部件样式都继承自
ThemeData
(在MaterialApp中定义)的颜色或主题,而不是ColorScheme
,colorScheme
只是您定义的额外颜色,无论是在ThemeData
中还是在应用程序中的任何地方。wtzytmuj2#
AppBar
背景颜色来自appBarTheme(color:..)
。我更喜欢扩展家长主题,
更多关于主题
8ljdwjyq3#
e0bqpujr4#
我也在udemy上做同样的课程,并使用下面的配色方案为我工作。应用于appbar的原色。
颜色方案:const ColorScheme. light(主要:www.example.com,secondary:Colors. white)Colors.red,secondary: Colors.white)