我在recyclerview的行中有多个元素->多个我指的是数量上的多重以及类型上的多个,即多个图像视图,文本视图等。 以下是要点,以便您可以查看所有元素:https://gist.github.com/Harshhb101/55e25da72e3a474aeeb422d5e231d3e3
问题是我需要根据最多可包含10个值的参数隐藏/显示这些元素。因此,我将有10种类型的行。目前,我只为该行创建了一种布局,其中包含所有类型的行的元素,并且在某些移动设备中,滚动具有滞后性。主要是我在行有图像的地方出现了滞后。我正在使用Glide加载图像。以下是onBindView的要点:https://gist.github.com/Harshhb101/e10feb2cccda9d698ff06487bbb879ef
我确实查看了stackoverflow,但是找不到任何可靠的东西,但是使用了多个视图持有者。我的问题是,如果我重构代码,使用多个视图持有者是否会带来实质性的改变?还是我的方法有问题,可以解决以获得良好的效果。
答案 0 :(得分:0)
您需要缩小RecyclerView图像以节省内存并缓存它们。阅读this。
如果您的ViewHolder包含大小为wrap_content的图像,则将图像全尺寸加载,这对性能确实不利,例如,如果屏幕上的视图尺寸为48dp x 48dp并且图片为全高清,则将加载全高清可绘制图像进入内存会使滚动缓慢且不流畅。
我建议在ViewHolder中使用固定大小,或者在Glide中加载时覆盖图像大小
答案 1 :(得分:0)
查看代码后,我发现了一些改进。
custom_dialog.setFixedSize(custom_dialog.size())
中执行繁重的任务,而应在设置recyclerview适配器之前为recyclerview专门准备数据类(如果需要大量计算,例如繁重的字符串操作等)。答案 2 :(得分:0)