为什么android:singleLine =“true”使ListView滚动非常滞后?

时间:2013-06-15 15:06:08

标签: android performance

我注意到android:singleLine="true",如果在ListView的Listitem的TextView中使用,会使滚动非常滞后。虽然我找到了一个替代android:maxLines="1",但我很好奇为什么android:singleLine="true"使滚动非常滞后,即使它有点滞后,为什么android仍在使用它?

1 个答案:

答案 0 :(得分:24)

似乎这两个功能实际上并没有给出完全相同的结果。

根据Radley Marx在this blog创建的一个有趣主题,singleLine现在大部分已被弃用,但在某些情况下仍然有用,因为它不会考虑回车并收集最大值的文本在单行中:

  

最大的好处是singleLine会忽略回车符(\ n)并将所有文本放在一行上,有时甚至会将文本压缩在一起。 MaxLines不打扰。

最后他得出结论:

  

虽然不推荐使用singleLine,但旧Android手机上的旧Android应用程序仍在大量使用,因此它并没有真正消失。但它早已被抛弃,并且往往以意想不到的方式打破。尽可能使用maxLines,只在必要时使用singleLine。

然后,如果您查看有关这两种方法的Android文档:singleLinemaxLines,您可以看到第一个文档由文本TransformationMethod处理,这可以解释为什么它是比第二个慢得多。