buildCustom method

  1. @override
Widget buildCustom({
  1. ChildWidgetBuilder? childBuilder,
  2. required BuildContext context,
  3. required JsonWidgetData data,
  4. Key? key,
})
override

Custom builder that subclasses must override and implement to return the actual Widget to be placed on the tree.

Implementation

@override
Widget buildCustom({
  ChildWidgetBuilder? childBuilder,
  required BuildContext context,
  required JsonWidgetData data,
  Key? key,
}) {
  return LayoutBuilder(
      key: key,
      builder: (BuildContext context, BoxConstraints constraints) {
        var id = data.id;

        data.registry.setValue(
          '$id.maxHeight',
          constraints.maxHeight,
          originator: '$id.maxHeight',
        );
        data.registry.setValue(
          '$id.maxWidth',
          constraints.maxWidth,
          originator: '$id.maxWidth',
        );
        data.registry.setValue(
          '$id.minHeight',
          constraints.minHeight,
          originator: '$id.minHeight',
        );
        data.registry.setValue(
          '$id.minWidth',
          constraints.minWidth,
          originator: '$id.minWidth',
        );

        var child = getChild(data);

        return data.children?.length != 1
            ? SizedBox()
            : child.build(
                childBuilder: childBuilder,
                context: context,
              );
      });
}