我正在 Android Studio 中开发 Flutter 应用程序,并面临自定义颜色分配的挑战。我的目标是将特定的
colors
分配给我的应用程序中的不同状态。对于某些状态,使用预定义的颜色效果很好,例如 Colors.grey
代表 PomodoroStatus.runningPomodoro
。但是,当我尝试分配自定义颜色时,遇到类型不匹配错误,指出“元素类型‘Color’无法分配给地图值类型‘MaterialColor’”。
这里有一些背景信息:我正在实现一项功能,该功能可以根据番茄计时器的当前状态更改 UI 颜色。计时器有多种状态,例如运行、暂停和休息类型。我创建了一个地图,将每个状态与相应的颜色相关联。
代码:
import 'package:flutter/material.dart';
import '../model/pomodoro_status.dart';
import 'package:flutter/cupertino.dart';
const pomodoroTotalTime = 240 * 60;
const shortBreakTime = 20 * 60;
const lonBreakTime = 60 * 60;
const pomodoroPerSet = 4;
const Map<PomodoroStatus, String> statusDescription = {
PomodoroStatus.runningPomodoro: 'Pomodoro is running, try to be focused',
// Other status descriptions...
};
const Map<PomodoroStatus, MaterialColor> statusColor = {
PomodoroStatus.runningPomodoro: Colors.grey, // Works fine
// Custom color assignments below lead to errors
PomodoroStatus.pausedPomodoro: const Color(0xFFC2C2C2),
// Other status colors...
};
我已经尝试查阅 Flutter 文档并在这里搜索类似的问题,但找不到与我完全匹配的场景。我发现的大多数解决方案都与直接使用
Colors
相关,而不是自定义 Color
值。
问题:
Color
值分配给我的地图,而不会遇到类型不匹配错误?Color
对象转换或转换为 MaterialColor
以适合地图的预期值类型?任何相关文档的指导或参考将不胜感激。
您的
statusColor
地图具有 MaterialColor
作为值,因此它只接受 Colors
类中的颜色。