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

jim*_*251 21 performance android

我注意到android:singleLine="true",如果在ListView中的Listitem的TextView中使用,则滚动非常滞后.虽然我已经找到了另一种选择 android:maxLines="1",但我很好奇知道为什么android:singleLine="true"滚动非常滞后,即使它有点滞后,为什么android仍然使用它?

Yoa*_*uet 24

似乎这两个函数实际上并没有给出完全相同的结果.

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

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

最后他得出结论:

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

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

  • 为什么在使用minLines maxLines时,ellipsize ="end"不能用于某些文本截断它(不会将...添加到句子的末尾)但是当我使用singleLine时工作正常? (6认同)
  • 我还在使用`singleline`,因为我想忽略'maxLine`不支持的回车.弃用方法时改变行为是很愚蠢的. (3认同)