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,
),
displayLarge: decodeTextStyle(
value['displayLarge'] ?? value['headline1'],
validate: false,
),
displayMedium: decodeTextStyle(
value['displayMedium'] ?? value['headline2'],
validate: false,
),
displaySmall: decodeTextStyle(
value['displaySmall'] ?? value['headline3'],
validate: false,
),
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,
),
titleLarge: decodeTextStyle(
value['titleLarge'] ?? value['headline6'],
validate: false,
),
titleMedium: decodeTextStyle(
value['titleMedium'] ?? value['subtitle1'],
validate: false,
),
titleSmall: decodeTextStyle(
value['titleSmall'] ?? value['subtitle2'],
validate: false,
),
// @deprecated
// body1
// body2
// bodyText1: decodeTextStyle(
// value['bodyText1'],
// validate: false,
// ),
// bodyText2: decodeTextStyle(
// value['bodyText2'],
// validate: false,
// ),
// button: decodeTextStyle(
// value['button'],
// validate: false,
// ),
// caption: decodeTextStyle(
// value['caption'],
// validate: false,
// ),
// headline1: decodeTextStyle(
// value['headline1'],
// validate: false,
// ),
// headline2: decodeTextStyle(
// value['headline2'],
// validate: false,
// ),
// headline3: decodeTextStyle(
// value['headline3'],
// validate: false,
// ),
// headline4: decodeTextStyle(
// value['headline4'],
// validate: false,
// ),
// headline5: decodeTextStyle(
// value['headline5'],
// validate: false,
// ),
// headline6: decodeTextStyle(
// value['headline6'],
// validate: false,
// ),
// overline: decodeTextStyle(
// value['overline'],
// validate: false,
// ),
// subtitle1: decodeTextStyle(
// value['subtitle1'],
// validate: false,
// ),
// subtitle2: decodeTextStyle(
// value['subtitle2'],
// validate: false,
// ),
);
}
return result;
}