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.maybeParseDouble(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.maybeParseDouble(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;
}