SfSignaturePad class

The Signature Pad widget allows you to capture smooth and more realistic signatures through drawing gestures. The widget allows you to save the signature as an image, which can be further synchronized with your devices and documents that need the signature.

You can customize the SfSignaturePad with below options.

  • The width of the signature stroke can be customized by setting the minimumStrokeWidth and maximumStrokeWidth properties.
  • The minimumStrokeWidth defines the minimum thickness of the signature stroke and the maximumStrokeWidth defines the maximum thickness of the signature stroke.
  • The signature stroke width will be calculated based on the speed of the gesture, within the minimum and maximum stroke width ranges. So that the drawn signature will be more realistic.
  • The stroke color of the SfSignaturePad can be customized using the strokeColor property.
  • The background color of the SfSignaturePad can be customized using the backgroundColor property.

The onDrawStart, onDraw and onDrawEnd allows you to handle the gestures in SfSignaturePad

The SfSignaturePadState.toImage allows you to export the signature in SfSignaturePad to an image. The SfSignaturePadState.clear allows you to clear all the signature strokes in SfSignaturePad. The SfSignaturePadState.renderToContext2D allows you to export the signature in SfSignaturePad to a html canvas. SfSignaturePadState.renderToContext2D is used to export the signature as an image in web platform.

Note - Since the SfSignaturePadState.toImage, SfSignaturePadState.clear and SfSignaturePadState.renderToContext2D are defined in state object of SfSignaturePad, you have to use a global key assigned to the SfSignaturePad instance to call these methods.

Example

This snippet shows how to use a SfSignaturePad.

final GlobalKey<SfSignaturePadState> _signaturePadKey = GlobalKey();
SfSignaturePad(
  minimumStrokeWidth: 3.0,
  maximumStrokeWidth: 6.0,
  backgroundColor: Colors.white,
  strokeColor: Colors.green,
  key: _signaturePadKey,
 );
SfSignaturePad(
  onDrawStart: () {
    return false;
  },
  onDraw: (offset, time) {
    Offset offsetValue = offset;
    DateTime dateTime = time;
  },
  onDrawEnd: () {
     print("Signature has been completed in Signature Pad");
  });
_signaturePadKey.currentState!.clear();
ui.Image image = await _signaturePadKey.currentState!.toImage();
Inheritance
Available extensions

Constructors

SfSignaturePad.new({Key? key, double minimumStrokeWidth = _kMinimumStrokeWidth, double maximumStrokeWidth = _kMaximumStrokeWidth, Color? backgroundColor, Color? strokeColor, SignatureOnDrawStartCallback? onDrawStart, SignatureDrawCallback? onDraw, VoidCallback? onDrawEnd})
Constructor that creates a new instance of SfSignaturePad.
const

Properties

backgroundColor Color?
Color applied to the background of SfSignaturePad.
final
hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
maximumStrokeWidth double
The maximum width of the signature stroke.
final
minimumStrokeWidth double
The minimum width of the signature stroke.
final
onDraw SignatureDrawCallback?
Called when a stroke is updated on the SfSignaturePad.
final
onDrawEnd VoidCallback?
Called when the user completes signing on SfSignaturePad.
final
onDrawStart SignatureOnDrawStartCallback?
Called when the user starts signing on SfSignaturePad.
final
pZero Widget

Available on Widget, provided by the WidgetsExtension extension

no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
sliverBox Widget

Available on Widget, provided by the WidgetSliverBoxX extension

no setter
strokeColor Color?
Color applied to the signature stroke.
final

Methods

alignAtBottomCenter({Key? key, double? heightFactor, double? widthFactor}) Align

Available on Widget, provided by the WidgetsExtension extension

alignAtBottomLeft({Key? key, double? heightFactor, double? widthFactor}) Align

Available on Widget, provided by the WidgetsExtension extension

alignAtBottomRight({Key? key, double? heightFactor, double? widthFactor}) Align

Available on Widget, provided by the WidgetsExtension extension

alignAtCenter({Key? key, double? heightFactor, double? widthFactor}) Align

Available on Widget, provided by the WidgetsExtension extension

alignAtCenterLeft({Key? key, double? heightFactor, double? widthFactor}) Align

Available on Widget, provided by the WidgetsExtension extension

alignAtCenterRight({Key? key, double? heightFactor, double? widthFactor}) Align

Available on Widget, provided by the WidgetsExtension extension

alignAtLERP(Alignment a, Alignment b, double t, {Key? key, double? heightFactor, double? widthFactor}) Align

Available on Widget, provided by the WidgetsExtension extension

alignAtTopCenter({Key? key, double? heightFactor, double? widthFactor}) Align

Available on Widget, provided by the WidgetsExtension extension

alignAtTopLeft({Key? key, double? heightFactor, double? widthFactor}) Align

Available on Widget, provided by the WidgetsExtension extension

alignAtTopRight({Key? key, double? heightFactor, double? widthFactor}) Align

Available on Widget, provided by the WidgetsExtension extension

alignXY(double x, double y, {Key? key, double? heightFactor, double? widthFactor}) Align

Available on Widget, provided by the WidgetsExtension extension

card({Color? backgroundColor, double elevation = 1, EdgeInsets? margin}) Widget

Available on Widget, provided by the WidgetsExtension extension

container({double? width, double? height, Alignment? alignment, Color? backgroundColor, double borderWidth = 1, double radius = 1, Color borderColor = Colors.transparent, EdgeInsets? padding, EdgeInsets? margin, BoxConstraints? constraints}) Widget

Available on Widget, provided by the WidgetsExtension extension

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() SfSignaturePadState
Creates the mutable state for this widget at a given location in the tree.
override
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.
inherited
expanded({int flex = 1}) Widget

Available on Widget, provided by the WidgetsExtension extension

fit({Alignment alignment = Alignment.center}) Widget

Available on Widget, provided by the WidgetsExtension extension

form(GlobalKey<FormState> key) Widget

Available on Widget, provided by the WidgetsExtension extension

ltr() Widget

Available on Widget, provided by the WidgetsExtension extension

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

onLongPress(GestureTapCallback? onPressed) Widget

Available on Widget, provided by the WidgetsExtension extension

onTap(GestureTapCallback? onPressed) Widget

Available on Widget, provided by the WidgetsExtension extension

onTapInk(GestureTapCallback? onPressed) Widget

Available on Widget, provided by the WidgetsExtension extension

pAll(double padding) Widget

Available on Widget, provided by the WidgetsExtension extension

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

pSymmetric({double horizontal = 0.0, double vertical = 0.0}) Widget

Available on Widget, provided by the WidgetsExtension extension

rotate(double scale) Widget

Available on Widget, provided by the WidgetsExtension extension

rtl() Widget

Available on Widget, provided by the WidgetsExtension extension

safeArea() Widget

Available on Widget, provided by the WidgetsExtension extension

scale(double scale) Widget

Available on Widget, provided by the WidgetsExtension extension

scrollable({Axis scrollDirection = Axis.vertical}) Widget

Available on Widget, provided by the WidgetsExtension extension

showMenus(List<PopupMenuEntry<int>> items) Widget

Available on Widget, provided by the WidgetsExtension extension

toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
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

Operators

operator ==(Object other) bool
The equality operator.
inherited