decodeNavigationDrawerThemeData static method

NavigationDrawerThemeData? decodeNavigationDrawerThemeData(
  1. dynamic value, {
  2. bool validate = true,
})

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

{
  "backgroundColor": "<Color>",
  "elevation": "<double>",
  "iconTheme": "<WidgetStateProperty<IconThemeData>>",
  "indicatorColor": "<Color>",
  "indicatorShape": "<ShapeBorder>",
  "indicatorSize": "<Size>",
  "labelTextStyle": "<WidgetStateProperty<TextStyle>>",
  "shadowColor": "<Color>",
  "surfaceTintColor": "<Color>",
  "tileHeight": "<double>"
}

See also:

Implementation

static NavigationDrawerThemeData? decodeNavigationDrawerThemeData(
  dynamic value, {
  bool validate = true,
}) {
  NavigationDrawerThemeData? result;

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

    result = NavigationDrawerThemeData(
      backgroundColor: decodeColor(value['backgroundColor'], validate: false),
      elevation: JsonClass.maybeParseDouble(value['elevation']),
      iconTheme: decodeWidgetStatePropertyIconThemeData(
        value['iconTheme'],
        validate: false,
      ),
      indicatorColor: decodeColor(
        value['indicatorColor'],
        validate: false,
      ),
      indicatorShape: decodeShapeBorder(
        value['indicateShape'],
        validate: false,
      ),
      indicatorSize: decodeSize(
        value['size'],
        validate: false,
      ),
      labelTextStyle: decodeWidgetStatePropertyTextStyle(
        value['labelTextStyle'],
        validate: false,
      ),
      shadowColor: decodeColor(
        value['shadowColor'],
        validate: false,
      ),
      surfaceTintColor: decodeColor(
        value['surfaceTintColor'],
        validate: false,
      ),
      tileHeight: JsonClass.maybeParseDouble(value['tileHeight']),
    );
  }

  return result;
}