fromDynamic static method
Builds the builder from a Map-like dynamic structure. This expects the JSON format to be of the following structure:
{
"decoration": "<BoxDecoration>",
"enableFeedback": "<bool>",
"excludeFromSemantics": "<bool>",
"height": "<double>",
"margin": "<EdgeInsetsGeometry>",
"message": "<String>",
"onTriggered": "<TooltipTriggeredCallback>",
"padding": "<EdgeInsetsGeometry>",
"preferBelow": "<bool>",
"richMessage": "<InlineSpan>",
"showDuration": "<Duration>",
"textAlign": "<TextAlign>",
"textStyle": "<TextStyle>",
"triggerMode": "<bool>",
"verticalOffset": "<double>",
"waitDuration": "<Duration>"
}
See also:
JsonClass.maybeParseDurationFromMillis
ThemeDecoder.decodeBoxDecoration
ThemeDecoder.decodeEdgeInsetsGeometry
ThemeDecoder.decodeTextAlign
ThemeDecoder.decodeTextStyle
ThemeDecoder.decodeTooltipTriggerMode
Implementation
static JsonTooltipBuilder? fromDynamic(
dynamic map, {
JsonWidgetRegistry? registry,
}) {
JsonTooltipBuilder? result;
if (map != null) {
result = JsonTooltipBuilder(
decoration: ThemeDecoder.decodeBoxDecoration(
map['decoration'],
validate: false,
),
enableFeedback: map['enableFeedback'] == null
? null
: JsonClass.parseBool(map['enableFeedback']),
excludeFromSemantics: map['excludeFromSemantics'] == null
? null
: JsonClass.parseBool(map['excludeFromSemantics']),
height: JsonClass.maybeParseDouble(map['height']),
margin: ThemeDecoder.decodeEdgeInsetsGeometry(
map['margin'],
validate: false,
),
message: map['message']?.toString() ?? '',
padding: ThemeDecoder.decodeEdgeInsetsGeometry(
map['padding'],
validate: false,
),
preferBelow: map['preferBelow'] == null
? null
: JsonClass.parseBool(map['preferBelow']),
richMessage: map['richMessage'],
showDuration:
JsonClass.maybeParseDurationFromMillis(map['showDuration']),
textAlign: ThemeDecoder.decodeTextAlign(
map['textAlign'],
validate: false,
),
textStyle: ThemeDecoder.decodeTextStyle(
map['textStyle'],
validate: false,
),
triggerMode: ThemeDecoder.decodeTooltipTriggerMode(
map['triggerMode'],
validate: false,
),
verticalOffset: JsonClass.maybeParseDouble(map['verticalOffset']),
waitDuration:
JsonClass.maybeParseDurationFromMillis(map['waitDuration']),
);
}
return result;
}