RecyclerView performance with SQLLite, imageViews and recycl



这里有一个性能问题。我有一个 recyclerView(在一个片段中(,我从一个数据库中填充它,该数据库最终将在单个表中保存大约 16,000 个项目,每条记录 18 列,没有什么比整数、小数和 varchar 更棘手的了,并且记录是分类的,所以我不希望一次加载超过 300 个。我应该考虑限制选择或实现某种分页吗?我宁愿保持回收器视图简单且无缝滚动。

我也想知道回收器视图本身。这些行相当复杂,有两种状态:默认折叠状态显示 6 个视图,包括单个 imageView,单击一行后,我们得到展开状态(容器从 GONE 变为 VISIBLE(,共有 21 个视图,包括 2 个 imageView。我关心 imageViews 的质量,所以我正在测试它,小图像(50% 屏幕宽度(的分辨率限制为 512px,大图像的分辨率限制为 1024px(100% 屏幕宽度(,所有内容均为 JPG。因为我需要跟踪行的状态,所以我使用了

holder.setIsRecyclable(false);

在我的 onBindViewHolder 中,在回收器视图适配器中,因为如果没有它扩展一行会导致以下一些,回收的行也会被扩展。而且我显然希望每一行都折叠起来,直到用户明确展开。所以问题是,recyclerView滚动不那么流畅,当新行进入屏幕而旧行离开屏幕时,存在明显的滚动延迟,反之亦然。坦率地说,在相当强大的设备(LG G7 Fit(上进行测试时,体验非常跳跃。我能做些什么来优化性能(是的,我已经在各种分辨率下使用了 6 种不同尺寸的图像(。有没有更好的替代品来代替回收器视图,不需要把所有东西都颠倒过来?

仅供参考 经过广泛的测试,我发现通过降低第一个(始终可见(imageView 中图像的分辨率,可以最大程度地提高滚动的平滑度。

最新更新