fromDynamic static method
Builds the builder from a Map-like dynamic structure. This expects the JSON format to be of the following structure:
{
"alignment": "<AlignmentGeometry>",
"clipBehavior": "<Clip>",
"curve": "<Curve>",
"duration": "<int; millis>",
"reverseDuration": "<int; millis>",
}
As a note, the Curve and TickerProvider cannot be decoded via JSON.
Instead, the only way to bind those values to the builder is to use a
function or a variable reference via the JsonWidgetRegistry. But if
vsync
is not passed, the widget itself will be the TickerProvider.
Implementation
static JsonAnimatedSizeBuilder? fromDynamic(
dynamic map, {
JsonWidgetRegistry? registry,
}) {
JsonAnimatedSizeBuilder? result;
if (map != null) {
result = JsonAnimatedSizeBuilder(
alignment: ThemeDecoder.decodeAlignment(
map['alignment'],
validate: false,
) ??
Alignment.center,
clipBehavior: ThemeDecoder.decodeClip(
map['clipBehavior'],
validate: false,
),
curve: map['curve'] ?? Curves.linear,
duration: JsonClass.maybeParseDurationFromMillis(
map['duration'],
)!,
reverseDuration: JsonClass.maybeParseDurationFromMillis(
map['reverseDuration'],
),
);
}
return result;
}