我正在写一个将管理文本的自定义布局。
在开始实现ViewGroup#onMeasure()
方法之前,我开始研究EditText源代码,尤其是在EditText#onMeasure()
方法中。所以我遇到了 BoringLayout
。我阅读了文档,但没有找到太多解释以及如何在实际的自定义实现中使用它。然后我的问题是如何以正确的方式使用它以及何时真正需要它。
最佳答案
BoringLayout
用于在 View 上绘制文本。之所以称为“无聊”,是因为它只处理一行从左到右的文本,而没有任何有趣的字符(例如表情符号)。这种简化允许类以比默认值更有效的逻辑覆盖 onDraw
。 Here is the source code 如果你想亲眼看看。
与 StaticLayout
和 DynamicLayout
一样, BoringLayout
也是抽象 Layout
类的子类。正如文档所说,除非您制作自己的文本处理小部件,否则您可能不会直接使用这些类。你怎么知道你是否应该使用这些类之一?如果您正在考虑在自定义 View 中使用 Canvas.drawText
,那么您可能应该考虑使用 Layout
。他们最终也会调用 Canvas.drawText
,但他们事先做了很多其他处理。
如果您正在制作自己的文本小部件,那么您只能将 BoringLayout
用于单行、简单、从左到右的文本。对于多行和更复杂的文本,请使用 StaticLayout
。如果您需要在创建后动态更改文本,请使用 DynamicLayout
。
关于android - BoringLayout 的可用性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13254688/