我有一个文本视图,它包含文本的一部分。当用户单击箭头时,文本视图将调整大小,以便显示全文。示例见下图:
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这样的动画属性。谁能帮帮我?
发布于 2013-06-16 16:01:55
发布于 2014-12-11 21:08:45
虽然动画maxLines
工作,但结果是有点起伏,因为您的视图高度跳跃很多。
int startHeight = content.getMeasuredHeight();
content.setMaxLines(Integer.MAX_VALUE);
content.measure(
View.MeasureSpec.makeMeasureSpec(parent.getWidth(), View.MeasureSpec.AT_MOST),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
int endHeight = content.getMeasuredHeight();
content
是将maxLines
设置为2的TextView
。现在您可以改为设置TextView
高度的动画。编辑:当TextView
不能垂直地适应它的内容时,它会滚动,你需要解决办法。setMovementMethod(null)
会禁用滚动,但也会禁用链接点击。因为安卓。
https://stackoverflow.com/questions/17082322
复制相似问题