build method

  1. @override
Widget build(
  1. BuildContext context
)
override

Describes the part of the user interface represented by this widget.

The framework calls this method when this widget is inserted into the tree in a given BuildContext and when the dependencies of this widget change (e.g., an InheritedWidget referenced by this widget changes). This method can potentially be called in every frame and should not have any side effects beyond building a widget.

The framework replaces the subtree below this widget with the widget returned by this method, either by updating the existing subtree or by removing the subtree and inflating a new subtree, depending on whether the widget returned by this method can update the root of the existing subtree, as determined by calling Widget.canUpdate.

Typically implementations return a newly created constellation of widgets that are configured with information from this widget's constructor and from the given BuildContext.

The given BuildContext contains information about the location in the tree at which this widget is being built. For example, the context provides the set of inherited widgets for this location in the tree. A given widget might be built with multiple different BuildContext arguments over time if the widget is moved around the tree or if the widget is inserted into the tree in multiple places at once.

The implementation of this method must only depend on:

If a widget's build method is to depend on anything else, use a StatefulWidget instead.

See also:

  • StatelessWidget, which contains the discussion on performance considerations.

Implementation

@override
widgets.Widget build(widgets.BuildContext context) => SvgPicture.string(
      '''
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M15 8C15 6.89543 15.8059 6 16.8 6H40.2C41.1941 6 42 6.89543 42 8V40C42 41.1046 41.1941 42 40.2 42H16.8C15.8059 42 15 41.1046 15 40V34H7.8C6.80589 34 6 33.1046 6 32V16C6 14.8954 6.80589 14 7.8 14H15V8ZM28 14V8H17V14L28 14ZM30 8V14L40 14V8H30ZM28 16L24 16V23H28V16ZM30 23V16L40 16V23L30 23ZM28 25H24V32H28V25ZM30 32V25L40 25V32H30ZM28 34H17V40H28V34ZM30 40V34H40V40H30ZM22 16V32H7.8V16H22ZM11.2258 19H13.3732L15.1156 22.754L16.957 19H18.9631L16.1992 24L19.0261 29H16.9102L15.0112 25.07L13.1203 29H10.9729L13.8466 23.982L11.2258 19Z" fill="black"/>
</svg>
''',
      colorFilter:
          color != null ? widgets.ColorFilter.mode(color!, widgets.BlendMode.srcIn) : null,
      width: width,
      height: height,
    );