默认显示三行,点击查看全部,再点击恢复显示三行。
查看全部设置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;
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);
}