首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:在非常慢的RecyclerView中处理大数据列表

Android:在非常慢的RecyclerView中处理大数据列表
EN

Stack Overflow用户
提问于 2021-02-20 07:23:40
回答 2查看 767关注 0票数 1

我是Android的新手,我想在视图中显示一个列表(row = image + text +按钮)。

该列表将包含1000多个项目。目前我正在使用RecyclerView,但是加载这些信息需要相当长的时间。

添加日志后,我发现数据获取(1000个条目)大约需要1000 is,这是完全好的,,而第一次显示列表则需要5000 is。列表显示之后,上下滚动是相当平滑的。

我的理解是,RecyclerView将自动处理每一行的视图创建,这样

  1. RecyclerView将只为当前屏幕呈现几个项,在运行时将呈现任何低于或需要向下滚动的项。
  2. RecyclerView只会呈现尽可能多的行

如果1)是正确的,那么是否有机会进行优化?如果2)是正确的,这意味着我需要找到一种聪明的方式来优化,如分页?

因为我对Android非常陌生,所以我不确定该往哪个方向发展。

  1. 我是否应该在UI上分页:获取1000项并存储在列表中,然后每次加载10项,当滚动到最底部时,再加载另外10项,直到结束?
  2. 我是否应该在获取数据时进行分页:获取10项并呈现10行,当滚动到最底部时,再获取10项并呈现新的10行,直到结束?

哪一个是对的?

  1. 同样,当向下滚动时,前10项如何持续?我需要手动处理上下滚动吗?

不好意思问这个问题,但希望我能把这个问题说清楚。

EN

回答 2

Stack Overflow用户

发布于 2021-02-20 08:58:57

即使回收者视图动态生成视图,您也不应该直接操作大量数据到回收视图。

考虑使用Android的分页库。https://developer.android.com/topic/libraries/architecture/paging

票数 0
EN

Stack Overflow用户

发布于 2021-02-20 09:40:40

一开始还需要5000毫秒的时间才能显示清单。列表显示之后,在上下滚动时是相当平滑的。

基于此,我建议您查看您可能首先执行的任何数据操作(如果有的话),因为问题可能不是recyclerView。

如果要优化回收视图,确实有一种为recyclerview使用分页的技术。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66289046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档