我有包含一部分文本的textview。当用户单击箭头时,将调整文本 View 的大小,以便显示全文。请参见下面的图像作为示例:
TextView的高度为wrap_content,折叠时为maxLines =“4”。
箭头的onClick包含以下代码:
if (isExpanded) {
btnToggle.setImageDrawable(getResources().getDrawable(
R.drawable.arrow_down));
tvText.setMaxLines(4);
tvText.setEllipsize(TruncateAt.END);
} else {
btnToggle.setImageDrawable(getResources().getDrawable(
R.drawable.arrow_up));
tvText.setMaxLines(Integer.MAX_VALUE);
tvText.setEllipsize(null);
}
isExpanded = !isExpanded;
该代码有效,但不是动画的。我需要为扩展设置动画,因此TextView会设置为动画的全高度。
我找不到有关MaxLines之类的动画属性的任何信息。谁能帮助我?
最佳答案
您可以使用ObjectAnimator
实现此目的
ObjectAnimator animation = ObjectAnimator.ofInt(
tvText,
"maxLines",
25);
animation.setDuration(4000);
animation.start();
这将在4000毫秒的时间内将“tvText” TextView的“maxLines”属性从最初设置的值增加到25。
查看更多here和here。