Рандомизировать определенный hexColor в Flutter - PullRequest
0 голосов
/ 05 февраля 2020

Я сделал карты и сумел раскрасить их случайным образом с помощью материала Цвета,

class RandomColor<Color> {
  List<MaterialColor> color = [
    Colors.green,
    Colors.blue,
    Colors.indigo,
  ];

  var index = Random().nextInt(3);

  MaterialColor colorRandomizer() {
    print(color[index]);
    return color[index];
  }
}

Проблема , когда я пробую его с шестнадцатеричным цветом , flutter выдает ошибку «Цвет не является функцией»
Также приведенный ниже код работает, если его нет в Class , но возвращает только 1 случайный цвет.

error messages can be seen here

class RandomHexColor<Color> {
  Color one = Color(0xff808000);
  Color two = Color(0xff608000);
  Color three = Color(0xff208080);

  List<Color> hexColor = [one, two, three];

  var indexColor = Random().nextInt(3);

  Color colorRandom() {
    print(hexColor[indexColor]);
    return hexColor[indexColor];
  }
}

полный код можно найти здесь https://gist.github.com/nevruzoglu/3db05f01706e5b2b4e75e24cded4a5b0

1 Ответ

0 голосов
/ 05 февраля 2020

Почему делают класс generi c? почему вы используете RandomColor<Color>{...

Удалите это <Color>.

Попробуйте это,

class RandomHexColor {
  static const Color one = Color(0xff808000);
  static const Color two = Color(0xff608000);
  static const Color three = Color(0xff208080);

  List<Color> hexColor = [one, two, three];

  static final _random = Random();

  Color colorRandom() {
    return hexColor[_random.nextInt(3)];
  }
}
...