我正在使用Theme来设计Flutter应用程序。 关于Button, ButttonThemeData.buttonColor 和 ButtonThemeData.colorScheme.primary 有什么区别?
答案 0 :(得分:4)
在创建ThemeData
对象时,如果未指定buttonTheme
,则将从其他属性(例如buttonColor
)中构建对象。如果未指定buttonColor
,它将是primarySwatch
的阴影。如果未指定primarySwatch
,它将为Colors.blue
。
类似地,如果未指定colorScheme
,它将根据其他属性(例如primarySwatch
)构建,在这种情况下,colorScheme.primary
的值为primarySwatch
,即默认为Colors.blue
。
关于框架如何将其用于小部件:
buttonColor
实际上没有在任何地方使用。buttonTheme.buttonColor
用于RaisedButton
,FlatButton
,OutlineButton
colorScheme.primary
用于滑块,切换,小吃条以及几个Cupertino小部件。 ThemeData
的其他一些属性本来是由于引入colorScheme
对象而变得多余的,但是它们并没有被弃用,因此相当混乱。