【问题标题】: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()

我做错了什么?

【问题讨论】:

    标签: flutter


    【解决方案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

        【讨论】:

          猜你喜欢
          • 2020-08-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-06-17
          • 1970-01-01
          • 2019-06-01
          • 2020-07-18
          相关资源
          最近更新 更多