我可能會從根本上誤解是如何工作的,所以請糾正我在哪裏,我錯了的documentation for CustomPainter's paint method說,「要畫上一個畫布文本,使用TextPainter」所以我MyCustomPainter的paint方法中,我有以下:如何使用TextPainter繪製文本?
TextSpan span = new TextSpan(text: 'Yrfc');
TextPainter tp = new TextPainter(text: span, textAlign: TextAlign.left);
tp.layout();
tp.paint(canvas, new Offset(5.0, 5.0));
我試過各種偏移(Offset.zero, Offset.infinite, new Offset(10.0, 10.0)
,但我從來沒有能夠看到屏幕上的文字。
在複製上面的代碼之前,人們需要知道的一件事情是,每次重新創建TextPainter都會相對昂貴(特別是對'layout'的調用很昂貴)。在可能的情況下,您希望保留TextPainter並重用它,只在該方法的參數更改時調用'layout'。 –