decodeButtonThemeData static method
Decodes the given value
to an ButtonThemeData. This expects the
given value
to follow the structure below:
{
"alignedDropdown": <bool>,
"buttonColor": <Color>,
"colorScheme": <ColorScheme>,
"disabledColor": <Color>,
"focusColor": <Color>,
"height": <double>,
"highlightColor": <Color>,
"hoverColor": <Color>,
"layoutBehavior": <ButtonBarLayoutBehavior>,
"materialTapTargetSize": <MaterialTapTargetSize>,
"minWidth": <double>,
"padding": <EdgeInsetsGeometry>,
"shape": <ShapeBorder>,
"splashColor": <Color>,
"textTheme": <ButtonTextTheme>
}
See also:
Implementation
static ButtonThemeData? decodeButtonThemeData(
dynamic value, {
bool validate = true,
}) {
ButtonThemeData? result;
if (value is ButtonThemeData) {
result = value;
} else if (value != null) {
assert(SchemaValidator.validate(
schemaId: '$_baseSchemaUrl/button_theme_data',
value: value,
validate: validate,
));
result = ButtonThemeData(
alignedDropdown: JsonClass.parseBool(value['alignedDropdown']),
buttonColor: decodeColor(
value['buttonColor'],
validate: false,
),
colorScheme: decodeColorScheme(
value['colorScheme'],
validate: false,
),
disabledColor: decodeColor(
value['disabledColor'],
validate: false,
),
focusColor: decodeColor(
value['focusColor'],
validate: false,
),
height: JsonClass.parseDouble(value['height'], 36.0)!,
highlightColor: decodeColor(
value['highlightColor'],
validate: false,
),
hoverColor: decodeColor(
value['hoverColor'],
validate: false,
),
layoutBehavior: decodeButtonBarLayoutBehavior(
value['layoutBehavior'],
validate: false,
) ??
ButtonBarLayoutBehavior.padded,
materialTapTargetSize: decodeMaterialTapTargetSize(
value['materialTapTargetSize'],
validate: false,
),
minWidth: JsonClass.parseDouble(value['minWidth'], 88.0)!,
padding: decodeEdgeInsetsGeometry(
value['padding'],
validate: false,
),
shape: decodeShapeBorder(
value['shape'],
validate: false,
),
splashColor: decodeColor(
value['splashColor'],
validate: false,
),
textTheme: decodeButtonTextTheme(
value['textTheme'],
validate: false,
)!,
);
}
return result;
}