无法创建自定义颜色表

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

【讨论】:

以上是关于无法创建自定义颜色表的主要内容,如果未能解决你的问题,请参考以下文章

使用样式表自定义 QTabWidget

Vue - 在引导表自定义组件上更新数据

无法创建自定义颜色表

ABAP 实现内表自定义的F4功能

Hibernatehibernate原生sql利用transformers返回多表自定义类型对象

Django数据库如何将一个表自定义的key列还原成id列作为key