判断TextView是否有省略
2018-02-01 本文已影响330人
奔跑吧李博
项目中用到判断Textview是否有省略的,有就显示[全部]的符号,没有就不显示。
效果图:

判断方法:
private void textCheckAll() {
Layout layout = tvTag.getLayout();
if (layout != null) {
int lines = layout.getLineCount();
if (layout.getEllipsisCount(lines - 1) > 0) { //有省略
tvAlltext.setVisibility(View.VISIBLE);
}else{ //无省略
}
}
}
但是tvTag可以还没有绘制完全,getLayout会返回null,这里添加一个绘制完成的回调,在进行判断以解决这种情况。
tvTag.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Layout layout = tvTag.getLayout();
if (layout != null) {
int lines = layout.getLineCount();
if (layout.getEllipsisCount(lines - 1) > 0) { //有省略
tvAlltext.setVisibility(View.VISIBLE);
}
}
}
});