decodeSearchBarThemeData static method

SearchBarThemeData? decodeSearchBarThemeData(
  1. dynamic value, {
  2. bool validate = true,
})

Decodes the given value to an SearchBarThemeData. This expects the given value to follow the structure below:

{
  "backgroundColor": "<WidgetStateProperty<Color>>",
  "constraints": "<BoxConstraints>",
  "elevation": "<WidgetStateProperty<double>>",
  "hintStyle": "<WidgetStateProperty<TextStyle>>",
  "overlayColor": "<WidgetStateProperty<Color>>",
  "padding": "<WidgetStateProperty<EdgeInsetsGeometry>>",
  "shadowColor": "<WidgetStateProperty<Color>>",
  "shape": WidgetStateProperty<OutlinedBorder>,
  "side": "<WidgetStateProperty<BorderSide>>",
  "surfaceTintColor": "<WidgetStateProperty<Color>>",
  "textStyle": "<WidgetStateProperty<TextStyle>>",
  "textCapitalization": "<TextCapitalization>"
}

See also:

Implementation

static SearchBarThemeData? decodeSearchBarThemeData(
  dynamic value, {
  bool validate = true,
}) {
  SearchBarThemeData? result;

  if (value is SearchBarThemeData) {
    result = value;
  } else if (value != null) {
    assert(SchemaValidator.validate(
      schemaId: '$_baseSchemaUrl/search_bar_theme_data',
      value: value,
      validate: validate,
    ));

    result = SearchBarThemeData(
      backgroundColor: decodeWidgetStatePropertyColor(
        value['backgroundColor'],
        validate: false,
      ),
      constraints: decodeBoxConstraints(
        value['constraints'],
        validate: false,
      ),
      elevation: decodeWidgetStatePropertyDouble(
        value['elevation'],
        validate: false,
      ),
      hintStyle: decodeWidgetStatePropertyTextStyle(
        value['hintStyle'],
        validate: false,
      ),
      overlayColor: decodeWidgetStatePropertyColor(
        value['overlayColor'],
        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,
      ),
      textCapitalization: decodeTextCapitalization(
        value['textCapitalization'],
        validate: false,
      ),
      textStyle: decodeWidgetStatePropertyTextStyle(
        value['textStyle'],
        validate: false,
      ),
    );
  }

  return result;
}