Класс Color
ожидает целое число ARGB. Поскольку вы пытаетесь использовать его со значением RGB
, представьте его как int и добавьте к нему префикс 0xff
.
Color mainColor = Color(0xffb74093);
Если вас это раздражает и вы все еще хотите использовать строки, вы можете расширить Color
и добавить строковый конструктор
class HexColor extends Color {
static int _getColorFromHex(String hexColor) {
hexColor = hexColor.toUpperCase().replaceAll("#", "");
if (hexColor.length == 6) {
hexColor = "FF" + hexColor;
}
return int.parse(hexColor, radix: 16);
}
HexColor(final String hexColor) : super(_getColorFromHex(hexColor));
}
использование
Color color1 = HexColor("b74093");
Color color2 = HexColor("#b74093");
Color color3 = HexColor("#88b74093"); // if you wish to use ARGB format