Дарт: использование переменных в качестве заполнителей методов - PullRequest
0 голосов
/ 25 апреля 2020

Использование этой функции:

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 голосов
/ 26 апреля 2020

Благодаря jamesdlin я смог создать карту, которая указывает 'ваш цвет' на соответствующий цвет

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);
    },
  ),
);
}
0 голосов
/ 26 апреля 2020

Вы не можете использовать String для передачи цвета. Вы должны передать сам цвет.

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

и при вызове функции передать цвет как Colors.blue, например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...