import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'package:cool_ui/cool_ui.dart'; class PaintEventDemo extends StatefulWidget{ @override State createState() { // TODO: implement createState return PaintEventDemoState(); } } class PaintEventDemoState extends State{ bool isPaintBackgroud = false; @override Widget build(BuildContext context) { // TODO: implement build return Scaffold( appBar: AppBar( title: Text("PaintEvent Demo"), ), body: Row( children: [ FlatButton(onPressed: (){ setState((){ isPaintBackgroud = !isPaintBackgroud; }); }, child: Text(isPaintBackgroud?"渲染前填充颜色":"渲染后填充颜色")), PaintEvent( child: Text("子Widget文字"), paintAfter: (context,offset,size){ if(!isPaintBackgroud){ final Paint paint = Paint(); paint.color = Colors.red; context.canvas.drawRect(offset&size, paint); } },paintBefore: (context,offset,size){ if(isPaintBackgroud){ final Paint paint = Paint(); paint.color = Colors.red; context.canvas.drawRect(offset&size, paint); } }, ) ], ) ); } }