decodeListTileThemeData static method

ListTileThemeData? decodeListTileThemeData(
  1. dynamic value, {
  2. bool validate = true,
})

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

{
  "contentPadding": "<EdgeInsetsGeometry>",
  "dense": "<bool>",
  "enableFeedback": "<bool>",
  "horizontalTitleGap": "<double>",
  "iconColor": "<Color>",
  "leadingAndTrailingTextStyle": "<TextStyle>",
  "minLeadingWidth": "<double>",
  "minVerticalPadding": "<double>",
  "mouseCursor": "<WidgetStateProperty<MouseCursor>>",
  "selectedColor": "<Color>",
  "selectedTileColor": "<Color>",
  "shape": "<ShapeBorder>",
  "style": "<ListTileStyle>",
  "textColor": "<Color>",
  "tileColor": "<Color>",
  "visualDensity": "<VisualDensity>"
}

Implementation

static ListTileThemeData? decodeListTileThemeData(
  dynamic value, {
  bool validate = true,
}) {
  ListTileThemeData? result;

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

    result = ListTileThemeData(
      contentPadding: decodeEdgeInsetsGeometry(
        value['contentPadding'],
        validate: false,
      ),
      dense: JsonClass.maybeParseBool(value['dense']),
      enableFeedback: JsonClass.maybeParseBool(value['enableFeedback']),
      horizontalTitleGap:
          JsonClass.maybeParseDouble(value['horizontalTitleGap']),
      iconColor: decodeColor(
        value['iconColor'],
        validate: false,
      ),
      leadingAndTrailingTextStyle: decodeTextStyle(
        value['leadingAndTrailingTextStyle'],
        validate: false,
      ),
      minLeadingWidth: JsonClass.maybeParseDouble(value['minLeadingWidth']),
      minVerticalPadding:
          JsonClass.maybeParseDouble(value['minVerticalPadding']),
      mouseCursor: decodeWidgetStatePropertyMouseCursor(
        value['mouseCursor'],
        validate: false,
      ),
      selectedColor: decodeColor(
        value['selectedColor'],
        validate: false,
      ),
      selectedTileColor: decodeColor(
        value['selectedTileColor'],
        validate: false,
      ),
      shape: decodeShapeBorder(
        value['shape'],
        validate: false,
      ),
      subtitleTextStyle: decodeTextStyle(
        value['subtitleTextStyle'],
        validate: false,
      ),
      style: decodeListTileStyle(
        value['style'],
        validate: false,
      ),
      textColor: decodeColor(
        value['textColor'],
        validate: false,
      ),
      tileColor: decodeColor(
        value['tileColor'],
        validate: false,
      ),
      titleAlignment: decodeListTileTitleAlignment(
        value['titleAlignment'],
        validate: false,
      ),
      titleTextStyle: decodeTextStyle(
        value['titleTextStyle'],
        validate: false,
      ),
      visualDensity: decodeVisualDensity(
        value['visualDensity'],
        validate: false,
      ),
    );
  }

  return result;
}