有的时候需要判断textview的内容是否超过了自己行数的限制,比如最多3行,超过三行就显示省略号,然后在下面显示“查看更多”,这就有一个问题,textview.getLineCount()确实可以获取行数,那么怎么判断是否超过3行呢,textview.getLineCount() > 3 肯定不行,正好3行的时候就不适合了,通过下面的代码可以解决问题:
textContent.post(new Runnable() {
@Override
public void run() {
Layout layout = textContent.getLayout();
if(layout != null) {
int lines = layout.getLineCount();
if(lines > 0) {
int ellipsisCount = layout.getEllipsisCount(lines-1);
if ( ellipsisCount > 0) {
textMore.setVisibility(View.VISIBLE);
}else {
textMore.setVisibility(View.GONE);
}
}
}
}
});
需要注意的是需要在异步处理,只有在界面画出来来才能得到textview的行数的.