在视图寻呼机中的recyclerview中加载大数据时出现性能问题



我的设置包括两个带有viewpager的选项卡设置。每个选项卡都包含一个片段,其中包含一个显示歌曲列表的回收视图。问题是,当将大量歌曲加载到回收窗口时,ui会冻结一段时间。对于超过2000首歌曲的数量,系统会冻结很长一段时间,然后抛出OutOfMemory错误。

注意:在一个简单的片段或活动中将数据加载到recyclerview中根本没有性能问题,即使数据集非常大。

如何对此进行优化?

所以我找到了问题的根源。在NestedScrollView中循环查看。因为我有三个RecyclerView要显示,所以我不得不使用NestedScrollView来包装它们。但从这个问题中,我了解到,在嵌套的ScrollView中使用recyclerview会使recyclerview希望在渲染之前一次创建所有视图。这就是每次显示数据时UI冻结的原因。

如果你只想显示歌曲的基本信息,你可以使用列表作为数据,在SongInfo中包含名称、专辑、歌手。。。等等,它不会占用太多内存

简单。只需将layoutManager autoMeasureEnable设置为true或override LayoutmanlayoutManager.setAutoMeasureEnabled(false(

最新更新