首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >颤振: colorScheme属性ThemeData是如何工作的?

颤振: colorScheme属性ThemeData是如何工作的?
EN

Stack Overflow用户
提问于 2022-11-18 14:02:39
回答 1查看 28关注 0票数 0

因此,对于配色方案而言,材料应用程序

代码语言:javascript
运行
复制
              colorScheme: ThemeData().colorScheme.copyWith(

                          primary: Color(0xff075e54),
                          secondary: Color(0xffeacb2d),
                   ),

我的问题是ThemeData().colorScheme.copyWith()工作并给出2种颜色--主色和secondary.but --如果我像ColorScheme().copyWith()那样去做,它不工作吗?为什么?ThemeData().colorScheme.copyWith()ColorScheme().copyWith()有什么区别?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-18 14:32:55

ThemeData是一个Flutter类,当您得到以下内容时,它的所有属性都带有默认值:

代码语言:javascript
运行
复制
 ThemeData().colorScheme.copyWith()

您正在尝试在颤振框架中的内置colorSheme上获取ThemeData属性,然后使用copyWith()方法重写其值。基本上,这就像您得到一个已经存在的属性,然后更新它。

现在,当您使用:

代码语言:javascript
运行
复制
ColorScheme()

您正在调用ColorSheme类的构造函数,如您所见:

代码语言:javascript
运行
复制
const ColorScheme({
required this.brightness,
required this.primary,
required this.onPrimary,
Color? primaryContainer,
Color? onPrimaryContainer,
required this.secondary,
required this.onSecondary,
Color? secondaryContainer,
Color? onSecondaryContainer,
/*...*/

有些属性是必需的,因此为了调用一个完整的新ColorSheme构造函数,您需要为其中的每个required属性提供值,然后您可以这样说。

代码语言:javascript
运行
复制
ColorScheme(/* after all properties are set*/).copyWith()

所以你可以复制它并覆盖它的值。

ColorSchemefactory构造函数,它允许您根据材料设计方案色彩 (如ColorScheme.light()ColorScheme.dark())获得默认值.它可以直接使用,也可以重写其值,如下所示:

代码语言:javascript
运行
复制
ColorScheme.light().copyWith()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74490835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档