无法创建自定义颜色表
Posted
技术标签:
【中文标题】无法创建自定义颜色表【英文标题】:Can't create custom colorswatch 【发布时间】:2019-02-25 00:05:19 【问题描述】:我正在尝试为应用使用自定义颜色主题。
这是 main.dart 文件
import 'package:flutter/material.dart';
import 'pages/HomePage.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget
// This widget is the root of your application.
@override
Widget build(BuildContext context)
return new MaterialApp(
title: 'Flutter Demo',
debugShowCheckedModeBanner: false,
theme: new ThemeData(
// This is the theme of your application.
//
// Try running your application with "flutter run". You'll see the
// application has a blue toolbar. Then, without quitting the app, try
// changing the primarySwatch below to Colors.green and then invoke
// "hot reload" (press "r" in the console where you ran "flutter run",
// or press Run > Flutter Hot Reload in IntelliJ). Notice that the
// counter didn't reset back to zero; the application is not restarted.
primarySwatch: MaterialColor(0xFF990000,
50: Color(0xFF990001),
300: Color(0xFF990002),
900: Color(0xFF990003)
),
),
home: new HomePage(),
);
我收到以下错误:
颤振:══╡小部件库╞══════════════════════════════ ═══════════════════════ 颤振:在构建 MyApp(脏)时引发了以下 NoSuchMethodError: 颤振:在 null 上调用了“computeLuminance”方法。 颤振:接收者:空 颤振:尝试调用:computeLuminance()
我做错了什么?
【问题讨论】:
【参考方案1】:如果你想让它工作,你应该定义所有的值,当我只定义一两个值时我也遇到了同样的错误。
从official documentation我们发现
MaterialColor 类 定义一种颜色以及具有十种颜色深浅的色样。
例如:
primarySwatch: MaterialColor(0xFFFFFFFF,
50: Color(0xFFFFFFFF),
100: Color(0xFFFFFFFF),
200: Color(0xFFFFFFFF),
300: Color(0xFFFFFFFF),
400: Color(0xFFFFFFFF),
500: Color(0xFFFFFFFF),
600: Color(0xFFFFFFFF),
700: Color(0xFFFFFFFF),
800: Color(0xFFFFFFFF),
900: Color(0xFFFFFFFF),
);
【讨论】:
【参考方案2】:您不能将 MaterialColor 分配给 primaryswatch 感染用于分配不同类型颜色(如primaryColor、primaryColorLight/Dark、accentColor 等)的primaryswatch。
您可以从类似类型的问题中获得更多详细信息。 How do I use the different shades of a color swatch in Flutter?
【讨论】:
【参考方案3】:您需要创建一个整体MaterialColor
对象,为十个不同的亮度值提供所有颜色值。请考虑使用此解决方案以获得更好的方法。
Flutter: Creating a custom color swatch for MaterialColor
【讨论】:
以上是关于无法创建自定义颜色表的主要内容,如果未能解决你的问题,请参考以下文章