Textview设置高度无作用

默认显示三行,点击查看全部,再点击恢复显示三行。
查看全部设置textview高度没起作用,有什么问题。
就是如何把setLines(3)变成WRAP_CONTENT
textFlag = true

 description_tv = (TextView) findViewById(R.id.description);
        description_tv.setText(Description);
        description_more_tv =(TextView) findViewById(R.id.description_more);
        description_tv.setEllipsize(TextUtils.TruncateAt.END);
        description_tv.setLines(3);
        description_more_tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (textFlag) {
                    textFlag = false;
                    description_tv.setEllipsize(null);
                    ViewGroup.LayoutParams layoutParams = description_tv.getLayoutParams();
                    layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;

                } else {
                    textFlag = true;
                    description_tv.setEllipsize(TextUtils.TruncateAt.END);
                    description_tv.setLines(3);
                }
            }
        });

在if 处加 description_tv.setSingleLine(false); 使 description_tv.setLines(3); 失效

问题出在点击查看全部的时候行数还是3行,要在if条件里加一句description_tv.setLines(0);

你没修改TextView所占的高度

description_tv.getLayoutParams().height = 100;

  1. 在 xml 中把 TextView 的高度设置为 WRAPCONTENT,需要改高度就改父容器的;
  2. 设置行数的时候调用 setMaxLines(int number),防止 TextView 内容不够但是强行占三行;

description_tv.setLayoutParams(layoutParams)

在第一个if处保存之前的textview高度,在else中设置回来

请问你设置高度无作用,是没有显示全部对吗?我试了下,在设置显示全部的判断里加入textView.setSingleLine(flag);这是取消lines属性,之后就会显示全部,并且是自适应的。另外,我在显示全部和显示3行时分别赋值自适应高度,但获取的值显示全部的小于显示3行是什么原因

if (textFlag) {
textFlag = false;
ViewGroup.LayoutParams layoutParams = description_tv.getLayoutParams();
layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;
description_tv.setLines(Integer.MAX_VALUE);
} else {
textFlag = true;
description_tv.setEllipsize(TextUtils.TruncateAt.END);
description_tv.setLines(3);
}

if (textFlag) {
textFlag = false;
ViewGroup.LayoutParams layoutParams = description_tv.getLayoutParams();
layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;
description_tv.setLines(Integer.MAX_VALUE);
} else {
textFlag = true;
description_tv.setEllipsize(TextUtils.TruncateAt.END);
description_tv.setLines(3);
}