toJson method

  1. @override
Map<String, dynamic> toJson()
override

Abstract function that concrete classes must implement. This must encode the internal data model to a JSON compatible representation.

While not required, it is suggested to call removeNull before returning.

Implementation

@override
Map<String, dynamic> toJson() {
  final decorationEncoded =
      _JsonAnimatedContainerBuilder._encodeDecoration(decoration);
  final foregroundDecorationEncoded =
      _JsonAnimatedContainerBuilder._encodeForegroundDecoration(
          foregroundDecoration);

  return JsonClass.removeNull({
    'alignment': ThemeEncoder.encodeAlignmentGeometry(
      alignment,
    ),
    'clipBehavior': Clip.none == clipBehavior
        ? null
        : ThemeEncoder.encodeClip(
            clipBehavior,
          ),
    'color': ThemeEncoder.encodeColor(
      color,
    ),
    'constraints': ThemeEncoder.encodeBoxConstraints(
      constraints,
    ),
    'curve': Curves.linear == curve ? null : CurvesValues.encode(curve),
    'decoration': decorationEncoded,
    'duration': duration.inMilliseconds,
    'foregroundDecoration': foregroundDecorationEncoded,
    'height': height,
    'margin': ThemeEncoder.encodeEdgeInsetsGeometry(
      margin,
    ),
    'onEnd': onEnd,
    'padding': ThemeEncoder.encodeEdgeInsetsGeometry(
      padding,
    ),
    'transform': ThemeEncoder.encodeMatrix4(
      transform,
    ),
    'transformAlignment': ThemeEncoder.encodeAlignmentGeometry(
      transformAlignment,
    ),
    'width': width,
    'child': child?.toJson(),
    ...args,
  });
}