decodeMenuStyle static method
Decodes the given value
to an MenuStyle. This expects the given
value
to be of the following structure:
{
"alignment": "<Alignment>",
"backgroundColor": "<WidgetStateProperty<Color>>",
"elevation": "<WidgetStateProperty<double>>",
"fixedSize": "<WidgetStateProperty<Size>>",
"maximumSize": "<WidgetStateProperty<Size>>",
"minimumSize": "<WidgetStateProperty<Size>>",
"padding": "<WidgetStateProperty<EdgeInsets>>",
"shadowColor": "<WidgetStateProperty<Color>>",
"shape": "<WidgetStateProperty<OutlinedBorder>>",
"side": "<WidgetStateProperty<BorderSide>>",
"surfaceTintColor": "<WidgetStateProperty<Color>>",
"visualDensity": "<VisualDensity>",
}
See also:
Implementation
static MenuStyle? decodeMenuStyle(
dynamic value, {
bool validate = true,
}) {
MenuStyle? result;
if (value is MenuStyle) {
result = value;
} else if (value != null) {
assert(SchemaValidator.validate(
schemaId: '$_baseSchemaUrl/menu_style',
value: value,
validate: validate,
));
result = MenuStyle(
alignment: decodeAlignment(
value['alignment'],
validate: false,
),
backgroundColor: decodeWidgetStatePropertyColor(
value['backgroundColor'],
validate: false,
),
elevation: decodeWidgetStatePropertyDouble(
value['elevation'],
validate: false,
),
fixedSize:
decodeWidgetStatePropertySize(value['fixedSize'], validate: false),
maximumSize: decodeWidgetStatePropertySize(
value['maximumSize'],
validate: false,
),
minimumSize: decodeWidgetStatePropertySize(
value['minimumSize'],
validate: false,
),
mouseCursor: decodeWidgetStatePropertyMouseCursor(
value['mouseCursor'],
validate: false,
),
padding: decodeWidgetStatePropertyEdgeInsetsGeometry(
value['padding'],
validate: false,
),
shadowColor: decodeWidgetStatePropertyColor(
value['shadowColor'],
validate: false,
),
shape: decodeWidgetStatePropertyOutlinedBorder(
value['shape'],
validate: false,
),
side: decodeWidgetStatePropertyBorderSide(
value['side'],
validate: false,
),
surfaceTintColor: decodeWidgetStatePropertyColor(
value['surfaceTintColor'],
validate: false,
),
visualDensity: decodeVisualDensity(
value['visualDensity'],
validate: false,
),
);
}
return result;
}