textview显示三行多余的隐藏点击按钮后显示

首先布局
因为我这个是列表所以这只是一个item


    

        
        
        
            
            
            
        
        
    




//java实现逻辑


//判断文字超出三行后显示还是隐藏
    private Boolean flag = true;




 ((ViewHolderTitle) holder).tv_text.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
                @Override
                public void onGlobalLayout() {
                    if (((ViewHolderTitle) holder).tv_text.getLineCount() >= 3) {
                        ((ViewHolderTitle) holder).iv_more.setVisibility(View.VISIBLE);
                    } else {
                        ((ViewHolderTitle) holder).iv_more.setVisibility(View.GONE);
                    }
                }
            });
           ((ViewHolderTitle) holder).iv_more.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (flag) {
                        flag = false;
//向上箭头图片
                        ((ViewHolderTitle) holder).iv_more.setImageResource(R.mipmap.more);
                        ((ViewHolderTitle) holder).tv_text.setEllipsize(null);//展开
                        ((ViewHolderTitle) holder).tv_text.setMaxLines(Integer.MAX_VALUE);//把TextView行数显示取消掉
                        ((ViewHolderTitle) holder).tv_text.setSingleLine(false);//这个方法是必须设置的,否则无法展开
                    } else {
                        flag = true;
//向下箭头图片
                        ((ViewHolderTitle) holder).iv_more.setImageResource(R.mipmap.more_open);
                        ((ViewHolderTitle) holder).tv_text.setEllipsize(TextUtils.TruncateAt.END); // 收缩
                        ((ViewHolderTitle) holder).tv_text.setMaxLines(3);
                    }
                }
            });

  

你可能感兴趣的:(textview显示三行多余的隐藏点击按钮后显示)