我实现了一个ListView,通过单击它们来展开元素以显示所有文本。我正在使用this实施。 正如您所看到的那样,项目是考虑硬编码字符串而其中一个参数是扩展后TextView的高度。由于我无法知道电视的最终高度,因为我的字符串是从互联网上获取的,我将扩展高度设置为:
AbsListView.LayoutParams.WRAP_CONTENT;
你可能知道android的WRAP_CONTENT只是一个-2整数。我的问题是-2被传递给animaton方法,该方法进行以下计算:
float height = (ToHeight - FromHeight) * interpolatedTime + FromHeight;
因为ToHeight是-2(假设FromHeight是200),TextView动画高度会像这样:
200.0
191.05173
175.801
158.36632
134.70096
105.341835
78.51846
53.146957
31.025742
9.73967
-1.203598
-2.0
所以动画给人的印象是关闭但是在那个高度变得很好之后因为是-2(WRAP_CONTENT)。我该如何解决这个问题?
答案 0 :(得分:0)
您可能需要显示更多代码或包含您尝试设置动画的TextView
的XML文件。可能适合您的解决方案是动态计算展开时TextView
应该达到的高度。您可以使用TextView.getLineCount()
获取文字行数,然后将其与TextView.getLineHeight()
相乘,以获得TextView
扩展到的高度,或者至少接近它的大小。
通常,WRAP_CONTENT
常量用作Android框架的标志,用于在布局期间指定尺寸。