build method
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:
- the fields of the widget, which themselves must not change over time, and
- any ambient state obtained from the
context
using BuildContext.dependOnInheritedWidgetOfExactType.
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="M31 14C31 13.4477 31.4477 13 32 13H36C36.5523 13 37 13.4477 37 14V16H40C40.5523 16 41 16.4477 41 17V23H44V25H41V31C41 31.5523 40.5523 32 40 32H37V34C37 34.5523 36.5523 35 36 35H32C31.4477 35 31 34.5523 31 34V25H17V34C17 34.5523 16.5523 35 16 35H12C11.4477 35 11 34.5523 11 34V32H8C7.44772 32 7 31.5523 7 31V25H4V23H7V17C7 16.4477 7.44772 16 8 16H11V14C11 13.4477 11.4477 13 12 13H16C16.5523 13 17 13.4477 17 14V23H31V14ZM13 33H15V15H13V33ZM11 18H9V30H11V18ZM37 30V18H39V30H37ZM35 15V33H33V15H35Z" fill="black"/>
</svg>
''',
colorFilter:
color != null ? widgets.ColorFilter.mode(color!, widgets.BlendMode.srcIn) : null,
width: width,
height: height,
);