decodeTextTheme static method
Decodes the given value
to a TextTheme. This expects the value
to
have one of the following structures:
2018 version
{
"bodyText1": "<TextStyle>",
"bodyText2": "<TextStyle>",
"button": "<TextStyle>",
"caption": "<TextStyle>",
"headline1": "<TextStyle>",
"headline2": "<TextStyle>",
"headline3": "<TextStyle>",
"headline4": "<TextStyle>",
"headline5": "<TextStyle>",
"headline6": "<TextStyle>",
"overline": "<TextStyle>",
"subtitle1": "<TextStyle>",
"subtitle2": "<TextStyle>"
}
2021 version
{
"bodyLarge": "<TextStyle>",
"bodyMedium": "<TextStyle>",
"bodySmall": "<TextStyle>",
"displayLarge": "<TextStyle>",
"displayMedium": "<TextStyle>",
"displaySmall": "<TextStyle>",
"headlineLarge": "<TextStyle>",
"headlineMedium": "<TextStyle>",
"headlineSmall": "<TextStyle>",
"labelLarge": "<TextStyle>",
"labelMedium": "<TextStyle>",
"labelSmall": "<TextStyle>",
"titleLarge": "<TextStyle>",
"titleMedium": "<TextStyle>",
"titleSmall": "<TextStyle>"
}
See also:
Implementation
static TextTheme? decodeTextTheme(
dynamic value, {
bool validate = true,
}) {
TextTheme? result;
if (value is TextTheme) {
result = value;
} else if (value != null) {
assert(SchemaValidator.validate(
schemaId: '$_baseSchemaUrl/text_theme',
value: value,
validate: validate,
));
result = TextTheme(
bodyLarge: decodeTextStyle(
value['bodyLarge'] ?? value['bodyText1'],
validate: false,
),
bodyMedium: decodeTextStyle(
value['bodyMedium'] ?? value['bodyText2'],
validate: false,
),
bodySmall: decodeTextStyle(
value['bodySmall'] ?? value['caption'],
validate: false,
),
// bodyText1: @deprecated,
// bodyText2: @deprecated,
// button: @deprecated,
// caption: @deprecated,
displayLarge: decodeTextStyle(
value['displayLarge'] ?? value['headline1'],
validate: false,
),
displayMedium: decodeTextStyle(
value['displayMedium'] ?? value['headline2'],
validate: false,
),
displaySmall: decodeTextStyle(
value['displaySmall'] ?? value['headline3'],
validate: false,
),
// headline1: @deprecated,
// headline2: @deprecated,
// headline3: @deprecated,
// headline4: @deprecated,
// headline5: @deprecated,
// headline6: @deprecated,
headlineLarge: decodeTextStyle(
value['headlineLarge'] ?? value[''],
validate: false,
),
headlineMedium: decodeTextStyle(
value['headlineMedium'] ?? value['headline4'],
validate: false,
),
headlineSmall: decodeTextStyle(
value['headlineSmall'] ?? value['headline5'],
validate: false,
),
labelLarge: decodeTextStyle(
value['labelLarge'] ?? value['button'],
validate: false,
),
labelMedium: decodeTextStyle(
value['labelMedium'] ?? value[''],
validate: false,
),
labelSmall: decodeTextStyle(
value['labelSmall'] ?? value['overline'],
validate: false,
),
// overline: @deprecated,
// subtitle1: @deprecated,
// subtitle2: @deprecated,
titleLarge: decodeTextStyle(
value['titleLarge'] ?? value['headline6'],
validate: false,
),
titleMedium: decodeTextStyle(
value['titleMedium'] ?? value['subtitle1'],
validate: false,
),
titleSmall: decodeTextStyle(
value['titleSmall'] ?? value['subtitle2'],
validate: false,
),
);
}
return result;
}