【发布时间】:2019-11-19 07:59:21
【问题描述】:
我有一个TextView,它的textSize 是3。我想在其中显示这个字符串:
String line =
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود;
我通过实现ViewTreeObserver.OnGlobalLayoutListener 接口在运行时为文本计算TextView 的可用宽度:
int textAreaWidth;
@Override
public void onGlobalLayout() {
textAreaWidth = textView.getWidth() - (textView.getPaddingLeft() + textView.getPaddingRight());
}
我也像这样计算line 的宽度:
TextPaint textPaint = textView.getPaint();
float lineWidth = textPaint.measureText(line);
在Logcat 我可以看到textAreaWidth 和lineWidth 的值:
textAreaWidth > 668
lineWidth > 668.0
如您所见,textAreaWidth 和 lineWidth 相等,但 TextView 将 line 分成 2 行并显示它们:
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف
بهبود
为什么TextView 会中断line 而行的宽度等于文本的可用宽度?
【问题讨论】: