我有包含一部分文本的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。

查看更多herehere

09-08 10:15