Dart:将变量用作方法占位符

时间:2020-04-25 20:33:02

标签: flutter dart

使用此功能:

buildButton(int file_number, String yourcolor, [String text]){
  return Expanded(
  child: FlatButton(
  color: Colors.yourcolor,
  child: Text(text),
  onPressed: (){
    playaudio(file_number);
    },
  ),);
}

color: Colors.yourcolor上。我不断收到错误消息:

The getter 'yourcolor' isn't defined for the class 'Colors'. Try importing the library that defines 'yourcolor', correcting the name to the name of an existing getter, or defining a getter or field named 'yourcolor'.

我知道没有一个名为“ yourcolor”的方法,但是有没有一种方法可以使用函数参数获取我想要的颜色?

2 个答案:

答案 0 :(得分:0)

您不能使用String来传递颜色。您必须自己传递颜色。

App File

,当您调用该函数时,将颜色传递为 buildButton(int file_number, Color yourcolor, [String text]){ return Expanded( child: FlatButton( color: yourcolor, child: Text(text), onPressed: (){ playaudio(file_number); }, ),); }

答案 1 :(得分:0)

感谢jamesdlin,我能够创建一个将'yourcolor'指向其对应颜色的地图

buildButton(int file_number, String yourcolor){
  Map match_colors = {'red':Colors.red, 'orange':Colors.orange, 'yellow':Colors.yellow,
  'lightgreen': Colors.lightGreen, 'green':Colors.green, 'lightblue':Colors.lightBlue, 'purple':Colors.purple};

  return Expanded(
  child: FlatButton(
  color: match_colors[yourcolor],
  onPressed: (){
    playaudio(file_number);
    },
  ),
);
}