我已经从https://github.com/flutter/flutter/issues/28138转到这里。
一般来说,我的问题是,我不认为floatingActionButton背景颜色和flatButton文本颜色继承自ThemeData中定义的正确值。
创建一个应用程序,您将在其中使用主要的红色(应用程序条、按钮bg、卡片)、黄色(图标、应用程序条标题)、黑色(常规文本)、白色/浅灰色(脚手架主体等背景)。
使用主题(PrimaryColor)将AppBar背景色设置为红色
使用主题(强调颜色)将AppBar标题颜色设置为黄色
将图标的颜色设置为与AccentColor相同的颜色,因为如果使用主颜色,它们将在应用程序栏中不可见。
创建带有图标的浮动操作按钮。
浮动操作按钮中的图标不可见,因为小部件的背景颜色使用了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的类似问题,默认情况下,文本的颜色是强调色,它是黄色(在白色背景上),如果我将其重写为primary,它是红色的,但我不希望它是红色的,因为它旁边的删除按钮是红色的。所以我需要将其设置为正常,所以它是黑色的,这是正确的,但是:
平钮,省道: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();
              },
            )

理论上,弹出对话框中的按钮应该是黑色或红色。但它是黄色的,是强调色。
要复制,请尝试以下示例:
https://gist.github.com/erikkubica/45fc8acdce1f8a25cd5258e8b3a0e1f3

最佳答案

如果希望浮动按钮的颜色为主要颜色,请添加以下内容。

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

如果要将对话框中的FlatButton颜色更改为黑色,请添加以下内容。
  theme: ThemeData(
    colorScheme: ColorScheme.light(
      primary: primary,
      secondary: Colors.black,
    ),

最好用colorScheme()实例化它,这样它就不会影响其他小部件。

10-06 03:28