J'ai fait des cartes et j'arrive à les colorier au hasard avec des couleurs matérielles,

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];
  }
}

Le problème est lorsque je l'essaye avec une couleur hexadécimale, le flutter donne une erreur "La couleur n'est pas une fonction"
De plus, le code ci-dessous fonctionne s'il n'est pas dans Class mais il ne renvoie qu'une couleur aléatoire.

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];
  }
}

Le code complet peut être trouvé ici https://gist.github.com/nevruzoglu/3db05f01706e5b2cded4e75e5ab>

0
Nevruzoglu 5 févr. 2020 à 01:17

1 réponse

Meilleure réponse

Pourquoi rendre la classe générique ? pourquoi utilisez-vous RandomColor<Color>{...

Supprimez ce <Color>.

Essaye ça,

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)];
  }
}
2
Crazy Lazy Cat 5 févr. 2020 à 04:51