Sam*_*Sam 6 dart flutter flutter-theme
class BMICalculator extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
primaryColor: Colors.red,
),
home: InputPage(),
);
Run Code Online (Sandbox Code Playgroud)
我正在学习这门课程:https://www.udemy.com/course/flutter-bootcamp-with-dart/
在主题部分,她使用这个确切的代码将她的 appBar 变成红色。我的代码没有显示任何错误,但我的 appBar 仍然是默认主题。
原色的描述在这里:https://api.flutter.dev/flutter/material/ThemeData-class.html
它没有说它已经折旧,也没有表明最近有任何变化。
我的问题不是“如何使我的应用程序栏变为红色”,而是“为什么此代码不能按预期执行?”
PrimaryColor
不能themeData
直接工作,你必须在其中声明它colorScheme
theme: ThemeData(colorScheme: ColorScheme.light(primary: Colors.red)),
Run Code Online (Sandbox Code Playgroud)
您可以使用primarySwatch
theme: ThemeData(primarySwatch: Colors.red),
Run Code Online (Sandbox Code Playgroud)
或者你可以使用appBarTheme
appBarTheme: AppBarTheme(
backgroundColor: Colors.red
),
Run Code Online (Sandbox Code Playgroud)
primarySwatch
不是一种颜色。它是MaterialColor
。这意味着它是材质应用程序将使用的不同深浅的颜色。
primaryColor
是这些色调之一。准确地说,primaryColor
通常等于primarySwatch[500]
ThemeData
一个保存所有主题设置,一个控制应用程序的外观,但ColorScheme
只是您创建的一组颜色,以轻松维护应用程序的颜色。请注意,该类ThemeData
有一个参数colorScheme
,因此您可以创建自己的参数colorScheme
并将其添加到ThemeData object
.
所有小部件样式都继承自颜色或主题ThemeData
(在 MaterialApp 中定义)ColorScheme
,而不仅仅是您定义的额外颜色,无论是在应用程序中还是在应用程序中的任何位置colorScheme
使用。ThemeData
归档时间: |
|
查看次数: |
5028 次 |
最近记录: |