decodeMenuStyle static method

MenuStyle? decodeMenuStyle(
  1. dynamic value, {
  2. bool validate = true,
})

Decodes the given value to an MenuStyle. This expects the given value to be of the following structure:

{
  "alignment": "<Alignment>",
  "backgroundColor": "<MaterialStateProperty<Color>>",
  "elevation": "<MaterialStateProperty<double>>",
  "fixedSize": "<MaterialStateProperty<Size>>",
  "maximumSize": "<MaterialStateProperty<Size>>",
  "minimumSize": "<MaterialStateProperty<Size>>",
  "padding": "<MaterialStateProperty<EdgeInsets>>",
  "shadowColor": "<MaterialStateProperty<Color>>",
  "shape": "<MaterialStateProperty<OutlinedBorder>>",
  "side": "<MaterialStateProperty<BorderSide>>",
  "surfaceTintColor": "<MaterialStateProperty<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: decodeMaterialStatePropertyColor(
        value['backgroundColor'],
        validate: false,
      ),
      elevation: decodeMaterialStatePropertyDouble(
        value['elevation'],
        validate: false,
      ),
      fixedSize: decodeMaterialStatePropertySize(value['fixedSize'],
          validate: false),
      maximumSize: decodeMaterialStatePropertySize(
        value['maximumSize'],
        validate: false,
      ),
      minimumSize: decodeMaterialStatePropertySize(
        value['minimumSize'],
        validate: false,
      ),
      mouseCursor: decodeMaterialStatePropertyMouseCursor(
        value['mouseCursor'],
        validate: false,
      ),
      padding: decodeMaterialStatePropertyEdgeInsetsGeometry(
        value['padding'],
        validate: false,
      ),
      shadowColor: decodeMaterialStatePropertyColor(
        value['shadowColor'],
        validate: false,
      ),
      shape: decodeMaterialStatePropertyOutlinedBorder(
        value['shape'],
        validate: false,
      ),
      side: decodeMaterialStatePropertyBorderSide(
        value['side'],
        validate: false,
      ),
      surfaceTintColor: decodeMaterialStatePropertyColor(
        value['surfaceTintColor'],
        validate: false,
      ),
      visualDensity: decodeVisualDensity(
        value['visualDensity'],
        validate: false,
      ),
    );
  }

  return result;
}