FloatingActionButton backgroundColor по умолчанию имеет значение accentColor - PullRequest
0 голосов
/ 19 февраля 2019

Меня перенаправили с https://github.com/flutter/flutter/issues/28138 сюда.

Обычно моя проблема заключается в том, что я не думаю, что цвета текста FloatingActionButton backgroundColor и FlatButton наследуются от правильных значений, определенных в ThemeData.

  1. Создайте приложение, в котором вы будете использовать основной красныйцвет (панель приложения, кнопка bg, карточка), желтый для акцента (значки, заголовок панели приложения), черный для общего текста, белый / светло-серый для фона, например, корпуса лесов.
  2. Установите цвет AppBar BG на красный, используя тему(primaryColor)
  3. Установить цвет заголовка AppBar на желтый, используя theme (accentColor)
  4. Установить цвет значков, совпадающий с цветом accentColor, поскольку при использовании основного цвета они будут невидимы в AppBar
  5. Создайте плавающую кнопку ActionActionButton со значком.
  6. Значок в плавающей кнопке ActionButton не отображается, потому что backgroundColor для виджета использует желтый цвет ThemeData.accentColor вместо ThemeData.primaryColor

По умолчанию на переднем плане и на заднем плане используется accentColor.

 /// The color to use when filling the button.
 ///
 /// Defaults to **[ThemeData.accentColor**] for the current theme.
 final Color backgroundColor;

Я основалАналогичная проблема с FlatButton в диалоге, по умолчанию цвет текста - это цвет акцента, который является желтым (на белом фоне), если я переопределяю его на основной, он красный, но я не хочу, чтобы он был красным, так какКнопка удаления рядом с ним красная.Поэтому мне нужно установить его в нормальное состояние, чтобы оно было черным, что правильно, но:

flat_button.dart: 127

 textStyle: theme.textTheme.button.copyWith(color: buttonTheme.getTextColor(this)),

Моя тема:

buttonTheme: ButtonThemeData(
            textTheme: ButtonTextTheme.normal,
            buttonColor: primary, // Red
          ),

textTheme: TextTheme(
           ...
            button: TextStyle(color: black), // Black
          ),

new FlatButton(
              //textTheme: ButtonTextTheme.normal,
              child: new Text("Ponechať"),
              onPressed: () {
                Navigator.of(context).pop();
                onKeep();
              },
            )

В теории мой FlatButton во всплывающем диалоговом окне должен быть черным или красным.Но это желтый цвет акцента.

Воспроизвести попробуйте следующий пример: https://gist.github.com/erikkubica/45fc8acdce1f8a25cd5258e8b3a0e1f3

1 Ответ

0 голосов
/ 20 февраля 2019

Если вы хотите, чтобы цвет плавающей кнопки был основным, добавьте следующее.

  floatingActionButton: FloatingActionButton(
    backgroundColor: Theme.of(context).primaryColor,

Если вы хотите изменить цвет FlatButton в диалоговом окне на черный, добавьте следующее.

  theme: ThemeData(
    colorScheme: ColorScheme.light(
      primary: primary,
      secondary: Colors.black,
    ),

Может быть лучше создать его экземпляр с помощью ColorScheme (), чтобы он не влиял на другие виджеты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...