Изменить цвет RaisedButton из темы не работает - PullRequest
0 голосов
/ 30 декабря 2018

Я попытался изменить цвет всех моих RaisedButtons с themeData, но он отказался работать.Все остальные свойства, такие как fontSize и fontWeight, успешно изменены.Цвет текста меняется только с черного на белый, когда свойство яркости themeData изменяется на Brightness.dark.

Есть ли способ решить эту проблему?Что я могу делать не так?

Вот мой пример кода:

 return new MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(
        primaryColor: Color(0XFF212845),
        scaffoldBackgroundColor: Color(0XFF212845),
        primarySwatch: Colors.yellow,
        buttonColor: Color(0XFFF8D320),
        textTheme:  TextTheme(
          button: TextStyle(
            color: Colors.green, // This is not working.
            fontSize: 30.0,
            fontWeight: FontWeight.bold
          )
        )
      ),
      home:MenuPage(),
    );

Ответы [ 3 ]

0 голосов
/ 18 мая 2019

Для других людей, приходящих на этот вопрос, одна из причин, по которой кнопка не может изменять цвета, заключается в том, что она отключена, что происходит, когда у вас не установлен метод onPressed.

RaisedButton(
  color: Theme.of(context).accentColor,
  onPressed: () {}, //                        <-- need to add this
  child: Text(...),
),

enter image description here

0 голосов
/ 12 июня 2019

если вы задаете цвет для свойства color, а оно не отображается, то, вероятно, вы не реализовали свойство onPressed, потому что в этом состоянии кнопка покажет его отключенный цвет, который вообще не является цветом.

установите его следующим образом:

onPressed: () {},

предоставив ему анонимную функцию, подобную этой, но не реализуя что-либо (или что-то, если хотите), что даст ему цвет

0 голосов
/ 30 декабря 2018

Добавьте buttonTheme и accentColor к вашему ThemeData, например:

  ThemeData(
            primaryColor: Color(0XFF212845),
            scaffoldBackgroundColor: Color(0XFF212845),
            primarySwatch: Colors.yellow,
            buttonColor: Color(0XFFF8D320),
            buttonTheme: ButtonThemeData(textTheme: ButtonTextTheme.accent),
            accentColor: Colors.green,
...