小编jns*_*jns的帖子

Gluon 上的 ListView 性能不佳

我有一个自定义ListCell实现,如下图所示。

在此处输入图片说明

左侧,代表日期,由 3 个标签组成,放入 aVBox和由计数器组成的“CounterContent” TextField,每个数字为 a HBox,包含在 a 中,两个Hboxes包含用于 kWh、kWh/day 等的标签. 这似乎太多了,无法高效运行。

我试图在后台任务中加载数据,显示进度指示器,而任务正在运行,但与桌面不同,在 android 上的性能非常差。每当我切换到列表视图时,垃圾收集就会启动并阻塞 ui 线程,因此进度指示器永远不会出现。

我已经在华为 Y-300、Android 4.1.1、javafxports 8.60.6(因为 javafxports 8.60.7 导致错误,导致TextField无法使用)和三星 S5 mini、Android 5+上尝试过。在三星手机上,性能总体上要好得多,就像预期的那样,因为我猜是提前编译,但仍然存在垃圾收集问题。此外,在列表视图中填充了单元格后,滚动不是很流畅。

列表单元是复杂的还是性能不佳的其他原因?

更新:

运行大量测试后,似乎滚动不流畅不是由性能问题引起的。至少在 S5 上(javafxports 8.60.7)。

我删除了所有 css 样式,并用单个标签替换了文本字段(计数器节点已经是一个自定义控件(忘记了),它在 2 Regions(不是HBoxes)中布置了文本字段,并且ListCell在构造函数中实例化了 的节点) . 此外,我切换了ListViewaCharmListView并设置了 android.monocle.input.touchRadius=1。

这些步骤都没有带来显着的改进。

澄清一下:与华为手机相比,S5和安卓5+的滚动是可以用的,但不是很流畅,导致用户体验不尽如人意。

在华为 (javafxports 8.60.6) 上,更改标签的计数器文本字段有显着改进,但还没有达到滚动可用的程度。直到我设置了这个神奇的实验开关:gluon.experimental.performance=true,这使得列表视图的滚动速度快如闪电(经过一点预热延迟),但仍然不是很流畅。

gluon gluon-mobile

2
推荐指数
1
解决办法
1068
查看次数

标签 统计

gluon ×1

gluon-mobile ×1