MyPainter.dart 670 Bytes
import 'package:flutter/material.dart';

class MyPainter extends CustomPainter {
  @override
  void paint(Canvas canvas, Size size) {
    var paint = Paint()
      ..isAntiAlias = true
      ..strokeWidth=1.0
      ..style=PaintingStyle.fill
      ..color=Colors.grey[800]
      ..invertColors=false;
    double cx=size.width/2,cy=size.height/2;
    double radius=size.width/4;
    Rect rect=Rect.fromLTRB(50.0, 50.0, size.width-50.0, size.height-200.0);
    canvas.drawRect(rect, paint);
  }

  //在实际场景中正确利用此回调可以避免重绘开销,本示例我们简单的返回true
  @override
  bool shouldRepaint(CustomPainter oldDelegate) => true;
}