2016-12-29 101 views
1

我可能會從根本上誤解是如何工作的,所以請糾正我在哪裏,我錯了的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),但我從來沒有能夠看到屏幕上的文字。

+1

在複製上面的代碼之前,人們需要知道的一件事情是,每次重新創建TextPainter都會相對昂貴(特別是對'layout'的調用很昂貴)。在可能的情況下,您希望保留TextPainter並重用它,只在該方法的參數更改時調用'layout'。 –

回答

4

我在輸入這個問題時找到了答案,但是我現在已經摔跤了一段時間,所以發帖以防其他人幫助。

什麼解決它正在改變TextSpan行:

TextSpan span = new TextSpan(style: new TextStyle(color: Colors.grey[600]), text: 'Yrfc');

顯然,這是不是繪製文本無形或白色(背景)顏色,因爲我沒有讓我的顏色選擇明確的。

+0

默認的文字顏色確實是白色的。 –

相關問題