Create `signature area` for mobile app in dart (flutter)

i want to create a signature area like Here with dart in a mobile app!

I tried to use the CustomPaint class ... But it doesn't work.

Can anyone help me?


You can create a signature area using GestureDetector to record touches and CustomPaint to draw on the screen. Here are a few tips:

import 'package:flutter/material.dart';

class SignaturePainter extends CustomPainter {

  final List<Offset> points;

  void paint(Canvas canvas, Size size) {
    Paint paint = new Paint()
      ..color =
      ..strokeCap = StrokeCap.round
      ..strokeWidth = 5.0;
    for (int i = 0; i < points.length - 1; i++) {
      if (points[i] != null && points[i + 1] != null)
        canvas.drawLine(points[i], points[i + 1], paint);

  bool shouldRepaint(SignaturePainter other) => other.points != points;

class Signature extends StatefulWidget {
  SignatureState createState() => new SignatureState();

class SignatureState extends State<Signature> {
  List<Offset> _points = <Offset>[];

  Widget build(BuildContext context) {
    return new Stack(
      children: [
          onPanUpdate: (DragUpdateDetails details) {
            RenderBox referenceBox = context.findRenderObject();
            Offset localPosition =

            setState(() {
              _points = new List.from(_points)..add(localPosition);
          onPanEnd: (DragEndDetails details) => _points.add(null),
        CustomPaint(painter: SignaturePainter(_points), size: Size.infinite),

class DemoApp extends StatelessWidget {
  Widget build(BuildContext context) => new Scaffold(body: new Signature());

void main() => runApp(new MaterialApp(home: new DemoApp()));

Need Your Help

Java 8 Unsafe: xxxFence() instructions

java concurrency java-8 unsafe memory-fences

In Java 8 three memory barrier instructions were added to Unsafe class (source):

Angular2 gets executed twice

angular http post

I came across a weird issue where the Angular2's (RC1) Http service executes the call twice. I've debugged my app and I know for a fact this is not a click event issue. All the calls that...