decodePopupMenuThemeData static method
Decodes the given value
to a PopupMenuThemeData. This expects the
given value
to be of the following structure:
{
"color": "<Color>",
"elevation": "<double>",
"enableFeedback": "<bool>",
"iconColor": "<Color>",
"iconSize": "<double>",
"labelTextStyle": "<WidgetStateProperty<TextStyle>>",
"mouseCursor": "<WidgetStateProperty<MouseCursor>>",
"position": "<PopupMenuPosition>",
"shadowColor": "<Color>",
"shape": "<ShapeBorder>",
"surfaceTintColor": "<Color>",
"textStyle": "<TextStyle>"
}
See also:
Implementation
static PopupMenuThemeData? decodePopupMenuThemeData(
dynamic value, {
bool validate = true,
}) {
PopupMenuThemeData? result;
if (value is PopupMenuThemeData) {
result = value;
} else if (value != null) {
assert(SchemaValidator.validate(
schemaId: '$_baseSchemaUrl/popup_menu_theme_data',
value: value,
validate: validate,
));
result = PopupMenuThemeData(
color: decodeColor(
value['color'],
validate: false,
),
elevation: JsonClass.maybeParseDouble(value['elevation']),
enableFeedback: JsonClass.maybeParseBool(value['enableFeedback']),
iconColor: decodeColor(
value['iconColor'],
validate: false,
),
iconSize: JsonClass.maybeParseDouble(value['iconSize']),
labelTextStyle: decodeWidgetStatePropertyTextStyle(
value['labelTextStyle'],
validate: false,
),
mouseCursor: decodeWidgetStatePropertyMouseCursor(
value['mouseCursor'],
validate: false,
),
position: decodePopupMenuPosition(
value['position'],
validate: false,
),
shadowColor: decodeColor(
value['shadowColor'],
validate: false,
),
shape: decodeShapeBorder(
value['shape'],
validate: false,
),
surfaceTintColor: decodeColor(
value['surfaceTintColor'],
validate: false,
),
textStyle: decodeTextStyle(
value['textStyle'],
validate: false,
),
);
}
return result;
}