Flutter 有没有一种不用Getter就可以将字符串转换成颜色的方法?

Flutter 有没有一种不用Getter就可以将字符串转换成颜色的方法?,flutter,dart,Flutter,Dart,在我的应用程序中,我有一些带有颜色名称的按钮。当用户按下按钮时,颜色的名称被记录为字符串,然后传递到我的结果屏幕小部件。 暂时,我使用了一个getter,它可以: Color get resultColor { Color faveColorTDT; if (faveColor == 'Black') { faveColorTDT = Colors.black; } else if (faveColor == 'Red') {

在我的应用程序中,我有一些带有颜色名称的按钮。当用户按下按钮时,颜色的名称被记录为字符串,然后传递到我的结果屏幕小部件。 暂时,我使用了一个getter,它可以:

  Color get resultColor {
    Color faveColorTDT;
    
    if (faveColor == 'Black') {
      faveColorTDT = Colors.black;
    }
    else if (faveColor == 'Red') {
      faveColorTDT = Colors.red;
    }
    else if (faveColor == 'Brown') {
      faveColorTDT = Colors.brown;
    }
    else {
      faveColorTDT = Colors.blue;
    }

    return faveColorTDT;
  }
然后我在文本小部件中使用getter,如下所示:

style:
  TextStyle(color: resultColor)
然而,如果颜色的数量增加,这是非常低效的。
那么,有没有办法将字符串转换为颜色或在颜色参数中使用字符串?

这是不可能的,因为颜色名称只是指实际颜色的抽象词 十六进制数字表示法。你不会得到它,至少在没有解决方案的情况下不会超过它需要的时间


你可以采取另一种方法,减少痛苦。把你的颜色(
colors.black
colors.blue
,等等)放在你说的那些按钮上,这样当按下按钮时,它们会发送颜色对象,而不是颜色字符串。这样就避免了条件句。

为什么要将其存储为
字符串呢