项目需求:文本内容超过5行就添加“展开--收起”功能。
我的思路:给TextView置值之后判断TextView的行数(getLineCount()),行数超过5行就设置行数为5添加展开按钮。
遇到问题:获取到的行数永远都为0.
猜想可能原因:获取行数时TextView值还未放进去。
解决方法:guidaneContent.post(new Runnable() {
@Override
public void run() {
int lines=guidaneContent.getLineCount();
if(lines>5){
expand.setVisibility(View.VISIBLE);
guidaneContent.setMaxLines(5);
}else{
expand.setVisibility(View.GONE);
}
}
});
没时间解释内部运行机制,推荐比较好的博客: