TextView展开和收回

第一步:接口请求返回数据

第二步:使用handler和textview.getLineCount方法判断是否超过指定行数:

community_desc_more.setVisibility(View.VISIBLE);
community_desc.setMaxLines(3);
community_desc.setEllipsize(TextUtils.TruncateAt.END);

第三步:点击展开按钮判断

int communityLineCount = community_desc.getLineCount();
if (communityLineCount > 3) {
    community_desc_more.setText("展开");
    community_desc.setMaxLines(3);
} else {
    community_desc.setMaxLines(Integer.MAX_VALUE);
    community_desc_more.setText("收起");
}

有个要注意的地方,getLineCount得到的是textview的真正行数,但是如果使用了

setEllipsize(TextUtils.TruncateAt.END)

得到的却是可见的行数

原文地址:https://www.cnblogs.com/anni-qianqian/p/5946885.html