Как изменить Colors.orage на Colors.orage[800] в теме?

Мне нужно изменить всю тему моего приложения. Я добавил это в свой основной метод. Это лучший способ изменить всю тему приложения или это другой способ? Пожалуйста, скажите мне.

@override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: new ThemeData(
        primarySwatch: Colors.orange
      ),

Мне нужно перейти на Colors.orange[800]. Я добавил этот цветовой код, но появляется нерабочая ошибка.


person Community    schedule 16.05.2019    source источник
comment
какое сообщение об ошибке отображается для вас?   -  person Mazin Ibrahim    schedule 16.05.2019


Ответы (1)


primarySwatch кроме MaterialColor, Colors.orange[800] есть Color.

Чтобы решить эту проблему, вы можете установить primaryColor на Colors.orange[800] увидеть разницу между primarySwatch и primaryColor.

Или же создайте пользовательский объект MaterialColor для основного образца, например:

MaterialColor materialOrange = MaterialColor(
    0xFFEF6C00, // this is the primary color, it is set to the value of orange[800]
    <int, Color>{
       50: Color(0xFFFFF3E0),
      100: Color(0xFFFFE0B2),
      200: Color(0xFFFFCC80),
      300: Color(0xFFFFB74D),
      400: Color(0xFFFFA726),
      500: Color(0xFFF57C00),
      600: Color(0xFFF57C00),
      700: Color(0xFFF57C00),
      800: Color(0xFFEF6C00),
      900: Color(0xFFE65100),
    },
  );
person Zvi Karp    schedule 16.05.2019
comment
Мне это нравится? Как поставить 800? MaterialColor materialOrange = MaterialColor( 0xFFEF6C00, <int, Color>{ 50: Color(0xFFFFF3E0), 100: Color(0xFFFFE0B2), 200: Color(0xFFFFCC80), 300: Color(0xFFFFB74D), 400: Color(0xFFFFA726), 500: Color(0xFFF57C00), 600: Color(0xFFF57C00), 700: Color(0xFFF57C00), 800: Color(0xFFEF6C00), 900: Color(0xFFE65100), }, ); return MaterialApp( theme: new ThemeData( primarySwatch: materialOrange ), - person ; 17.05.2019
comment
Как поставить 800? - person ; 17.05.2019
comment
@BhanukaIsuru, код, который вы написали, правильный. Если это не работает, возможно, виджет использует materialOrange[500], поэтому вы можете установить его на Color(0xFFEF6C00) или даже установить все значения на карте на Color(0xFFEF6C00). - person Zvi Karp; 17.05.2019