【发布时间】:2011-07-02 08:41:48
【问题描述】:
所以我有一个扩展的 TextView,我试图从中创建一个 StaticLayout,以便我可以通过调用 getEllipsisCount 来检测文本是否离开屏幕。
所以我在 TextView 中构建静态布局,如下所示:
layout = new StaticLayout(getText(), getPaint(), getWidth(), Alignment.ALIGN_NORMAL, 0f, 0f, false);
但即使 layout.getLineCount() 返回正确的行数,getEllipsisCount(n) 也永远不会返回 > 0,即使我可以清楚地看到它添加了省略号。
所以我猜这已经成为检测文本是否离开屏幕的不好方法......那么有谁知道更合适的方法,或者如何让它工作?
【问题讨论】:
-
会不会是需要先绘制StaticLayout?有没有办法绘制只是为了测试省略号,而不向用户显示?
-
在哪里可以确定文本视图是否被椭圆化?
-
不,我相信必须先绘制文本,然后才能返回有效值。但我最初问这个是为了创建另一个问题的解决方案,看看你需要什么:stackoverflow.com/questions/5033012/…
-
文本包含换行符时发生在我身上。删除它们修复了省略计算。
标签: android android-layout screen textview