SvgPicture class
A widget that will parse SVG data for rendering on screen.
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatelessWidget
- SvgPicture
- Available extensions
Constructors
- SvgPicture(BytesLoader bytesLoader, {Key? key, double? width, double? height, BoxFit fit = BoxFit.contain, AlignmentGeometry alignment = Alignment.center, bool matchTextDirection = false, bool allowDrawingOutsideViewBox = false, WidgetBuilder? placeholderBuilder, ColorFilter? colorFilter, String? semanticsLabel, bool excludeFromSemantics = false, Clip clipBehavior = Clip.hardEdge, SvgErrorWidgetBuilder? errorBuilder, SvgImageWidgetBuilder? imageBuilder, @Deprecated('No code should use this parameter. It never was implemented properly. ' 'The SVG theme must be set on the bytesLoader.') SvgTheme? theme, @Deprecated('This no longer does anything.') bool cacheColorFilter = false, RenderingStrategy renderingStrategy = RenderingStrategy.picture})
-
Instantiates a widget that renders an SVG picture using the
pictureProvider.const - SvgPicture.asset(String assetName, {Key? key, bool matchTextDirection = false, AssetBundle? bundle, String? package, double? width, double? height, BoxFit fit = BoxFit.contain, AlignmentGeometry alignment = Alignment.center, bool allowDrawingOutsideViewBox = false, WidgetBuilder? placeholderBuilder, String? semanticsLabel, bool excludeFromSemantics = false, Clip clipBehavior = Clip.hardEdge, SvgErrorWidgetBuilder? errorBuilder, SvgImageWidgetBuilder? imageBuilder, SvgTheme? theme, ColorMapper? colorMapper, ColorFilter? colorFilter, @Deprecated('Use colorFilter instead.') Color? color, @Deprecated('Use colorFilter instead.') BlendMode colorBlendMode = ui.BlendMode.srcIn, @Deprecated('This no longer does anything.') bool cacheColorFilter = false, RenderingStrategy renderingStrategy = RenderingStrategy.picture})
- Instantiates a widget that renders an SVG picture from an AssetBundle.
- SvgPicture.file(File file, {Key? key, double? width, double? height, BoxFit fit = BoxFit.contain, AlignmentGeometry alignment = Alignment.center, bool matchTextDirection = false, bool allowDrawingOutsideViewBox = false, WidgetBuilder? placeholderBuilder, ColorFilter? colorFilter, @Deprecated('Use colorFilter instead.') Color? color, @Deprecated('Use colorFilter instead.') BlendMode colorBlendMode = ui.BlendMode.srcIn, String? semanticsLabel, bool excludeFromSemantics = false, Clip clipBehavior = Clip.hardEdge, SvgErrorWidgetBuilder? errorBuilder, SvgImageWidgetBuilder? imageBuilder, SvgTheme? theme, ColorMapper? colorMapper, @Deprecated('This no longer does anything.') bool cacheColorFilter = false, RenderingStrategy renderingStrategy = RenderingStrategy.picture})
- Creates a widget that displays an SVG obtained from a File.
- SvgPicture.memory(Uint8List bytes, {Key? key, double? width, double? height, BoxFit fit = BoxFit.contain, AlignmentGeometry alignment = Alignment.center, bool matchTextDirection = false, bool allowDrawingOutsideViewBox = false, WidgetBuilder? placeholderBuilder, ColorFilter? colorFilter, @Deprecated('Use colorFilter instead.') Color? color, @Deprecated('Use colorFilter instead.') BlendMode colorBlendMode = ui.BlendMode.srcIn, String? semanticsLabel, bool excludeFromSemantics = false, Clip clipBehavior = Clip.hardEdge, SvgErrorWidgetBuilder? errorBuilder, SvgImageWidgetBuilder? imageBuilder, SvgTheme? theme, ColorMapper? colorMapper, @Deprecated('This no longer does anything.') bool cacheColorFilter = false, RenderingStrategy renderingStrategy = RenderingStrategy.picture})
- Creates a widget that displays an SVG obtained from a Uint8List.
-
SvgPicture.network(String url, {Key? key, Map<
String, String> ? headers, double? width, double? height, BoxFit fit = BoxFit.contain, AlignmentGeometry alignment = Alignment.center, bool matchTextDirection = false, bool allowDrawingOutsideViewBox = false, WidgetBuilder? placeholderBuilder, ColorFilter? colorFilter, @Deprecated('Use colorFilter instead.') Color? color, @Deprecated('Use colorFilter instead.') BlendMode colorBlendMode = ui.BlendMode.srcIn, String? semanticsLabel, bool excludeFromSemantics = false, Clip clipBehavior = Clip.hardEdge, SvgErrorWidgetBuilder? errorBuilder, SvgImageWidgetBuilder? imageBuilder, @Deprecated('This no longer does anything.') bool cacheColorFilter = false, SvgTheme? theme, ColorMapper? colorMapper, Client? httpClient, RenderingStrategy renderingStrategy = RenderingStrategy.picture}) - Creates a widget that displays an SVG obtained from the network.
- SvgPicture.string(String string, {Key? key, double? width, double? height, BoxFit fit = BoxFit.contain, AlignmentGeometry alignment = Alignment.center, bool matchTextDirection = false, bool allowDrawingOutsideViewBox = false, WidgetBuilder? placeholderBuilder, ColorFilter? colorFilter, @Deprecated('Use colorFilter instead.') Color? color, @Deprecated('Use colorFilter instead.') BlendMode colorBlendMode = ui.BlendMode.srcIn, String? semanticsLabel, bool excludeFromSemantics = false, Clip clipBehavior = Clip.hardEdge, SvgErrorWidgetBuilder? errorBuilder, SvgImageWidgetBuilder? imageBuilder, SvgTheme? theme, ColorMapper? colorMapper, @Deprecated('This no longer does anything.') bool cacheColorFilter = false, RenderingStrategy renderingStrategy = RenderingStrategy.picture})
- Creates a widget that displays an SVG obtained from a String.
Properties
- alignment → AlignmentGeometry
-
How to align the picture within its parent widget.
final
- allowDrawingOutsideViewBox → bool
-
If true, will allow the SVG to be drawn outside of the clip boundary of its
viewBox.
final
- bytesLoader → BytesLoader
-
The BytesLoader used to resolve the SVG.
final
- clipBehavior → Clip
-
The content will be clipped (or not) according to this option.
final
- colorFilter → ColorFilter?
-
The color filter, if any, to apply to this widget.
final
- errorBuilder → SvgErrorWidgetBuilder?
-
Widget displayed while the target image failed loading.
final
- excludeFromSemantics → bool
-
Whether to exclude this picture from semantics.
final
- fit → BoxFit
-
How to inscribe the picture into the space allocated during layout.
The default is BoxFit.contain.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- height → double?
-
If specified, the height to use for the SVG. If unspecified, the SVG
will take the height of its parent.
final
- imageBuilder → SvgImageWidgetBuilder?
-
A builder that wraps the successfully loaded SVG widget.
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- matchTextDirection → bool
-
If true, will horizontally flip the picture in TextDirection.rtl contexts.
final
- placeholderBuilder → WidgetBuilder?
-
The placeholder to use while fetching, decoding, and parsing the SVG data.
final
- renderingStrategy → RenderingStrategy
-
Widget rendering strategy used to balance flexibility and performance.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- semanticsLabel → String?
-
The
Semantics.labelfor this picture.final - width → double?
-
If specified, the width to use for the SVG. If unspecified, the SVG
will take the width of its parent.
final
Methods
-
alignAtBottomCenter(
{Key? key, double? heightFactor, double? widthFactor}) → Align -
Available on Widget, provided by the WidgetsExtension extension
Aligned to the bottom center. -
alignAtBottomLeft(
{Key? key, double? heightFactor, double? widthFactor}) → Align -
Available on Widget, provided by the WidgetsExtension extension
Aligned to the bottom left. -
alignAtBottomRight(
{Key? key, double? heightFactor, double? widthFactor}) → Align -
Available on Widget, provided by the WidgetsExtension extension
Aligned to the bottom right. -
alignAtCenter(
{Key? key, double? heightFactor, double? widthFactor}) → Align -
Available on Widget, provided by the WidgetsExtension extension
Centered. -
alignAtCenterLeft(
{Key? key, double? heightFactor, double? widthFactor}) → Align -
Available on Widget, provided by the WidgetsExtension extension
Aligned to the center left. -
alignAtCenterRight(
{Key? key, double? heightFactor, double? widthFactor}) → Align -
Available on Widget, provided by the WidgetsExtension extension
Aligned to the center right. -
alignAtLERP(
Alignment a, Alignment b, double t, {Key? key, double? heightFactor, double? widthFactor}) → Align -
Available on Widget, provided by the WidgetsExtension extension
Aligned betweenaandbatt(0 = a, 1 = b). -
alignAtTopCenter(
{Key? key, double? heightFactor, double? widthFactor}) → Align -
Available on Widget, provided by the WidgetsExtension extension
Aligned to the top center. -
alignAtTopLeft(
{Key? key, double? heightFactor, double? widthFactor}) → Align -
Available on Widget, provided by the WidgetsExtension extension
Aligned to the top left. -
alignAtTopRight(
{Key? key, double? heightFactor, double? widthFactor}) → Align -
Available on Widget, provided by the WidgetsExtension extension
Aligned to the top right. -
alignXY(
double x, double y, {Key? key, double? heightFactor, double? widthFactor}) → Align -
Available on Widget, provided by the WidgetsExtension extension
Aligned at x, y from -1 to 1.child.alignXY(0, -0.5) -
build(
BuildContext context) → Widget -
Describes the part of the user interface represented by this widget.
override
-
card(
{Color? backgroundColor, double? elevation, EdgeInsetsGeometry? margin}) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Material Card around it.child.card(elevation: 2) -
center(
) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Centered in the available space.child.center() -
chip(
{required Color backgroundColor, double? width, double? height, Alignment? alignment, double borderWidth = 1, double radius = 12, Color borderColor = Colors.transparent, EdgeInsets padding = const EdgeInsets.symmetric(horizontal: 8, vertical: 6), EdgeInsetsGeometry? margin, BoxConstraints? constraints}) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Pill-shaped colored box, e.g. for tags.Text("New").chip(backgroundColor: Colors.green.shade100) -
clipCircle(
) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Clips to a circle.avatar.clipCircle() -
clipRadius(
double radius) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Rounds the corners by clipping.image.clipRadius(12) -
container(
{double? width, double? height, Alignment? alignment, Color? backgroundColor, double borderWidth = 1, double radius = 1, Color borderColor = Colors.transparent, EdgeInsetsGeometry? padding, EdgeInsetsGeometry? margin, BoxConstraints? constraints}) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Box with background, border and rounded corners.child.container(backgroundColor: Colors.white, radius: 12) -
createElement(
) → StatelessElement -
Creates a StatelessElement to manage this widget's location in the tree.
inherited
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of DiagnosticsNode objects describing this node's
children.
inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
override
-
disabled(
bool disabled, {double opacity = 0.5}) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Greys out and blocks taps whendisabled.form.disabled(isSaving) -
expanded(
{int flex = 1}) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Takes the remaining space in a Row/Column.child.expanded() -
fadeSlideIn(
{int milliseconds = 1000, double offset = 24}) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Fades and slides up once when first shown.card.fadeSlideIn() -
fit(
{Alignment alignment = Alignment.center}) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Shrinks to fit the space (never grows).Text(long).fit() -
flexible(
{int flex = 1}) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Can shrink in a Row/Column but does not have to fill.child.flexible() -
form(
GlobalKey< FormState> key) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Wraps in a Form withkey.column.form(formKey) -
hero(
Object tag) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Hero animation between pages with the sametag.image.hero("product-$id") -
ltr(
) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Forces left-to-right (numbers, phone numbers, code).Text(phone).ltr() -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onDoubleTap(
GestureTapCallback? onPressed) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Double tap.image.onDoubleTap(like) -
onLongPress(
GestureTapCallback? onPressed) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Long press.child.onLongPress(showOptions) -
onPress(
VoidCallback onTap, {double pressedScale = 0.9, Duration duration = const Duration(milliseconds: 120)}) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Tap with a press-down shrink animation.card.onPress(open) -
onTap(
GestureTapCallback? onPressed) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Tap without ripple.child.onTap(open) -
onTapInk(
GestureTapCallback? onPressed) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Tap with a Material ripple (needs a Material ancestor).tile.onTapInk(open) -
opacity(
double opacity) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Makes it see-through (0 = invisible, 1 = solid).child.opacity(0.5) -
pAll(
double padding) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Same padding on every side.child.pAll(16) -
pLTRB(
double left, double top, double right, double bottom) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Padding left, top, right, bottom.child.pLTRB(8, 4, 8, 4) -
pOnly(
{double left = 0.0, double top = 0.0, double right = 0.0, double bottom = 0.0}) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Padding on chosen sides.child.pOnly(top: 8) -
position(
{double? left, double? top, double? right, double? bottom, double? width, double? height}) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Positioned inside a Stack.badge.position(top: 0, right: 0) -
pSymmetric(
{double horizontal = 0.0, double vertical = 0.0}) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Horizontal and/or vertical padding.child.pSymmetric(horizontal: 16) -
rotate(
double scale) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Rotates byscaleradians.arrow.rotate(pi / 2) -
rtl(
) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Forces right-to-left.child.rtl() -
safeArea(
) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Keeps it out of the notch and system bars.body.safeArea() -
scale(
double scale) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Scales the paint (layout size unchanged).icon.scale(1.5) -
scrollable(
{Axis scrollDirection = Axis.vertical}) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Makes it scroll when it does not fit.column.scrollable() -
showMenus(
List< PopupMenuEntry< items) → Widgetint> > -
Available on Widget, provided by the WidgetsExtension extension
Shows a popup menu where the user taps; items return their int value.child.showMenus([PopupMenuItem(value: 1, child: Text("Edit"))]) -
sized(
{double? width, double? height}) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Fixed width and/or height.logo.sized(width: 48, height: 48) -
skeleton(
bool loading) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Draws a shimmering loading placeholder in its shape whileloading.Text("Name").skeleton(isLoading) -
sliver(
) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Lets a normal widget sit inside a CustomScrollView.header.sliver() -
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
tooltip(
String message) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Showsmessageon long press / mouse hover.icon.tooltip("Delete") -
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String -
Returns a string representation of this node and its descendants.
inherited
-
toStringShallow(
{String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a one-line detailed description of the object.
inherited
-
toStringShort(
) → String -
A short, textual description of this widget.
inherited
-
translate(
Offset offset) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Moves the paint byoffset(layout unchanged).child.translate(const Offset(0, -4)) -
visible(
bool visible, {bool maintainSize = false}) → Widget -
Available on Widget, provided by the WidgetsExtension extension
Shows it only whenvisible; withmaintainSizeit keeps its space.saveButton.visible(isDirty)
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Properties
- defaultPlaceholderBuilder ↔ WidgetBuilder
-
The default placeholder for a SVG that may take time to parse or
retrieve, e.g. from a network location.
getter/setter pair