当前位置: 首页 > 知识库问答 >
问题:

为什么android:singleLine=“true”会使ListView滚动速度非常慢?

万坚壁
2023-03-14

我注意到,如果在ListView中Listitem的TextView中使用android:singleLine=“true”,则滚动会非常缓慢。虽然我找到了另一种android:maxLines=“1”,但我很好奇为什么android:singleLine=“true”会让滚动变得很慢,即使很慢,为什么android仍在使用它?

共有1个答案

仰经武
2023-03-14

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

根据Radley Marx在本博客上创建的一个有趣的主题,现在大多数人不赞成使用单行,但在某些情况下仍然有用,因为它不会考虑回车,也不会收集单行中的最大文本:

最大的优点是singleLine将忽略回车(\n)并将所有文本放在一行上,有时甚至将文本挤压在一起。MaxLines不麻烦。

最后,他得出结论:

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

然后,如果你查看关于这两种方法的Android文档:单线和maxLines,你可以看到第一种方法是由文本转换方法处理的,这可以解释为什么它比第二种方法慢得多。

 类似资料:
  • 问题内容: 我有一个带有onScrollStateChanged和onScroll事件侦听器的ListView。我希望能够获得ListView的滚动速度,或者以某种方式在某个事件侦听器中获得已启动滚动的finalX位置。我们的应用定位到SDK版本7。 我需要测量或获取ListView滚动的速度。 问题答案: 划分第一个可见项时差对时差不是一个好的解决方案。OnScroll侦听器每隔固定的时间周期接

  • 我有两个div一个接一个。当我滚动div 1时,div 2也应该滚动,同样,如果我滚动div 2,div 1也应该滚动。我通过将div 1的scrollTop值设置为div 2和div 2设置为div 1来实现这一点。但是这里的问题是滚动事件被多次触发,滚动非常非常慢。我创建了一个现场演示有人能帮我吗?

  • 我正在为GUI制作一个使用JavaFX的聊天应用程序。我在列表视图中显示聊天内容,但我有一个大问题--它非常非常慢。当我向列表中添加新项目时,尤其是当我向上/向下滚动列表时。我想可能与每次添加一个新项(列表中的每个单元格!)时列表都会刷新itsellf这一事实有关吧!并在每次向上/向下滚动时刷新。有人知道我能做什么来解决这个问题吗?TNX 我重写ListCell得UpdateItem:

  • 问题内容: 我正在查询有关的信息。 我正在迭代一个数组,并查询列表中的每个值。 不幸的是 ,在调试器下, 单个查询大约需要3-4秒,而 在禁用调试器的情况下, 查询时间要 短一些。 任何想法为什么这么慢?我使用进行测试。 这是我的代码: 更新资料 当我离开时,评估很快就完成了,但是我没有得到。它返回一个空字符串… 问题答案: 感谢@nvrmnd我尝试了一下,发现了一种更好的解析器: VTD-XML

  • 问题内容: 我面临一个非常奇怪的问题:使用Redis时,我的写入速度非常糟糕(在理想情况下,写入速度应该接近RAM上的写入速度)。 这是我的基准: 是生成随机字符串的类(arg是字符串长度) 以下是几个结果: [写入] nb:100000 |时间:4.408319378 |速度:0.713905907055318 MB / s [写入] nb:100000 |时间:4.4139469070553

  • 下面是我用来测试的脚本,在我所知道的情况下(主要来自视频),以及我在我的机器上得到的结果(python 3.8.10,numpy 1.19.5): 更新脚本: