При создании объекта ThemeData
, если buttonTheme
не указан, он будет построен из других свойств, таких как buttonColor
. Если buttonColor
не указано, это будет оттенок primarySwatch
. Если primarySwatch
не указано, оно будет Colors.blue
.
Аналогично, если colorScheme
не указано, оно будет построено из других свойств, таких как primarySwatch
, в этом случае colorScheme.primary
получает значение primarySwatch
, которое по умолчанию равно Colors.blue
.
Что касается того, как платформа использует их для виджетов:
buttonColor
фактически нигде не используется . buttonTheme.buttonColor
используется для RaisedButton
, FlatButton
, OutlineButton
*, 1027 * colorScheme.primary
используется для слайдеров, переключателей, снэк-баров, а также нескольких виджетов Купертино.
Есть несколько других свойств ThemeData
, которые должны были стать избыточными с введением colorScheme
объектов, но они не устарели и поэтому весьма запутаны.