我一直在尝试开发一个绘图应用程序,所有示例代码,包括来自 The Boring Flutter Development Show 的示例代码都不能很好地转化为实际使用。
主要问题是它CustomPaint
的绘制操作太昂贵并且重新绘制每一点、每一帧。随着点数的增加,颤振应用每帧的渲染时间显着增加
从我花时间寻找解决这个问题的方法开始,我发现了这些
RepaintBoundary
: 栅格化图层Custom Widget using
SingleChildRenderObjectWidget
andRenderProxyBox
: 必须实现一个paint方法并且不能传递一个控制器
我认为上述任何解决方案都不能很好地满足我的需求:无需重新绘制即可顺利进行画布绘制操作。我什至尝试简化这些要点,但由于固有的机制,这也不起作用CustomPaint
如果有办法将画布作为小部件传递并附加控制器,则可以轻松存储捕获的点并使用基本的画布操作,例如canvas.drawPath()
或canvas.drawLine()
非常有效
任何建议都会有所帮助。谢谢!