Android开发中经常会遇到一个需求就是使用TextView来展示描述信息,但是有时候描述很长,那我们如果固定高度就会有些内容展示不了,使用Wrap_Content就会有多长控件的高度就有多高,使用体验很不好。所以一般产品都会提需求说给定一个原始的行高,然后点击一个小图标拉伸,再次点击折叠,达到彼此轮换的效果(可能还需要你用一个平移的动画)。下面直接列出一个简易代码的实现:
ObjectAnimator animation = ObjectAnimator.ofInt(你的TextView控件, "maxLines", 你想要让TextView显示的行高);
animation.setDuration(200).start();
上诉代码中关于行高的问题,TextView提供了方法给我们使用
tv.getLineCount()//得到TextView本来的行高总数,包括所有文字
比如我们想要让它显示默认行高,也就是折叠的行高是3行
ObjectAnimator animation = ObjectAnimator.ofInt(tv, "maxLines", 3);
animation.setDuration(200).start();
让它完全显示出来,也就是伸展的行高
ObjectAnimator animation = ObjectAnimator.ofInt(tv, "maxLines", tv.getLineCount());
animation.setDuration(200).start();
标签:拉伸,tv,折叠,maxLines,ObjectAnimator,animation,TextView,行高 From: https://www.cnblogs.com/maowuge/p/16720469.html可以看到很简单就实现了需求,不用去自定义什么TextView,最后要注意给TextView设置 android:maxLines="100" 不然可能闪退