我通过渲染文本StaticLayout
并将其绘制onDraw()
在我的自定义视图中,而不是TextView
. 一切正常,直到我使用Android Nougat
. 在某些情况下,StaticLayout
错误地创建了lineWidth
比outerWidth
我传入的更大的constructor()
。所以它会导致我的自定义视图呈现错误。(限制区域外)
Android Marshmallow
,预期结果。
StaticLayout textLayout = new StaticLayout(text, paint, outerwidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
for (int i = 0; i < textLayout.getLineCount(); i++) {
lineWidth = textLayout.getLineWidth(i); // lineWidth sometimes is bigger than outerWidth
....
}
我不知道导致该错误的规则是什么。(如果我更改了 outerWidth 或文本,则不会发生错误。)
有人可以帮助他们吗?提前致谢。