根据字符长度,控制在TextView显示多少行

/**
 *  控制显示内容  行数
 * @param tvDetail
 */
private void setShowLines(final TextView tvDetail) {
    ViewTreeObserver vto = tvDetail.getViewTreeObserver();
//调用 绘画View之前的回调方法      因为measure  在 draw 之前
    vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
        @Override
        public boolean onPreDraw() {
            if(!hasMeasure){
                //获取textView的行数
                txtLines = tvDetail.getLineCount();
                Log.i("tag"," txtLines===================="+ txtLines);
                hasMeasure=true;
                if(txtLines<=showLines){
                    //隐藏查看全部
                    tvShrink.setVisibility(View.GONE);
                }else{
                    //显示查看全部
                    isShowAll=true;
                    tvShrink.setVisibility(View.VISIBLE);
                    tvDetail.setMaxLines(showLines);
                }
            }


            return true;
        }
    });
}

猜你喜欢

转载自blog.csdn.net/dawan19909/article/details/78361010