0

在定义ThemeDataFlutter 应用时,我们可以定义colorScheme属性。此属性具有内部属性,例如background& onBackgroundprimary& onPrimarysecondary&onSecondary等。此外,所有这些属性都设置为required

  static final ThemeData lightTheme = ThemeData(
    colorScheme: ColorScheme(
      background: appBackgroundColor,
      brightness: Brightness.light,
      error: Colors.white,
      onBackground: primaryColor,
      onError: null,
      onPrimary: null,
      onSecondary: null,
      onSurface: null,
      primary: null,
      secondary: secondaryColor,
      surface: null,
    ),
  );

我尝试参考 Flutter 的文档,但我不太了解它们之间的区别。

4

2 回答 2

2

“开启”颜色 应用程序界面使用调色板中特定类别的颜色,例如原色。每当元素(如文本或图标)出现在这些表面之前,这些元素应使用设计为与它们后面的颜色相比清晰易读的颜色。

此类颜色称为“上”颜色,指的是它们为出现在使用以下颜色的表面“上”的元素着色:原色、辅助色、表面颜色、背景颜色或错误颜色。当一种颜色出现在原色之上时,它被称为“原色上”。它们使用带有前缀“on”的原始颜色类别(例如原色)进行标记。</p>

“开”颜色主要应用于文本、图像和笔画。有时,它们被应用于表面。

“开”颜色的默认值为#FFFFFF 和#000000。

在此处输入图像描述

检查这个: 颜色系统

于 2022-02-13T12:35:22.467 回答
0

许多颜色都有匹配的“on”颜色,用于在匹配颜色之上绘制内容。例如,如果某物使用 primary 作为背景颜色,onPrimary 将用于在其上绘制文本和图标。出于这个原因,“打开”颜色应与其匹配颜色具有至少 4.5:1 的对比度,以便可读。

从https://api.flutter.dev/flutter/material/ColorScheme-class.html得到这个

于 2022-02-13T11:14:08.710 回答