通常这就是我检查我的TextViews是否已被椭圆化的方式:
ViewTreeObserver vto = description_detail.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Layout l = description_detail.getLayout();
if (l != null) {
int lines = l.getLineCount();
Log.e("lineCount=", String.valueOf(lines));
Log.e("getEllipsisCount=", String.valueOf(l.getEllipsisCount(lines - 1)));
if (lines > 0)
if (l.getEllipsisCount(lines - 1) > 0)
//ELLIPSIZED
}
}
});
我添加
android:autoLink="web"
到我的TextView,它不再起作用了。
我不明白为什么会这样。有什么想法吗?
编辑:
<TextView
android:id="@+id/description_detail"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:ellipsize="end"
android:autoLink="web"
android:maxLines="3"
android:text=""
android:textColor="@color/hostGrey"
android:textSize="16dp" />
因此,只要我的TextBox的行数大于3,它就会被椭圆化。
调试结果:
启用自动链接:
lines == 107
l.getEllipsisCount(lines - 1) == 0
没有自动链接:
lines == 3
l.getEllipsisCount(lines - 1) == 1