Flutter源码中Text小部件的RenderObject类在哪里
Posted
技术标签:
【中文标题】Flutter源码中Text小部件的RenderObject类在哪里【英文标题】:Where is the RenderObject class for the Text widget in the Flutter source code 【发布时间】:2019-11-09 23:51:20 【问题描述】:我正在研究 Text 小部件在 Flutter 中的工作原理。我知道小部件只是蓝图。它是实现小部件的元素。并且该元素制作了一个 RenderObject 来在屏幕上布局和绘制小部件。我认为这就是它的工作方式。
文本小部件的源代码很容易找到。这是here。 Flutter引擎中也有文字相关的样式类here。 C/C++ 中的低级文本库类是here。但我似乎找不到任何名为RenderText
的东西。谁在做文本渲染?它的元素是什么?
【问题讨论】:
【参考方案1】:我找到了。它被称为RenderParagraph
,而不是RenderText
。 Text
小部件在其构建方法中创建一个 RichText
小部件。 RenderParagraph
是 RenderObject
对应于 RichText
小部件。另一个重要的类是TextPainter
,RenderParagraph
使用它来协调绘制段落文本。绘画本身在 C/C++ 的 LibTxt 库中甚至更低。
【讨论】:
以上是关于Flutter源码中Text小部件的RenderObject类在哪里的主要内容,如果未能解决你的问题,请参考以下文章