android– 如何使RecyclerView顺利滚动?

android– 如何使RecyclerView顺利滚动?,第1张

概述这更像是一个通用的问题,但经过大量的搜索和尝试,我无法理解为什么这么难实现.This是我能找到的最接近的答案,但仍然无法实现.具体来说,我正在使用RecyclerView和GridLayoutManager.我想要的是平滑滚动的网格布局(如默认的gallary应用程序),没什么特别的,但网格布局管理器的默认

这更像是一个通用的问题,但经过大量的搜索和尝试,我无法理解为什么这么难实现. This是我能找到的最接近的答案,但仍然无法实现.

具体来说,我正在使用RecyclerVIEw和GrIDLayoutManager.我想要的是平滑滚动的网格布局(如默认的gallary应用程序),没什么特别的,但网格布局管理器的默认实现以“生涩”的方式滚动视图.我试图从上面的链接实现该方法,但没有成功.

我也尝试实现linearSmoothScroller,但我不确定如何实现computeScrollVectorForposition方法.在computeScrollVectorForposition上的Google’s documentation字面上有0个单词.

我找到了this 3 part tutorial,但它的帮助很小.所以,我想问的是:我们可以在linearSmoothScroller中实现某种模板代码,还是扩展RecyclerVIEw.SmoothScroller并实现平滑滚动?即使代码依赖于grIDlayout中每行的项目数和项目数,也必须有一些方法可以轻松完成.我在这里错过了什么吗?

解决方法:

AndroID中“典型”滚动的典型来源是应用程序在更新UI的主应用程序线程上花费了太多时间.对于RecyclerVIEw,这意味着在onBindVIEwHolder()或onCreateVIEwHolder()中可能需要花费太多时间.每个都需要以亚毫秒的速度返回,这意味着您无法在其中执行磁盘I / O或网络I / O.

think I found the problem. I am using holder.photo.setimageBitmap(BitmapFactory.decodefile(itemList.get(position).get‌​absolutePath())); on onBindVIEwHolder() and the image file is around 100kb each with about a doZen images in the List

是的,那将在主应用程序线程上进行磁盘I / O和图像解码.这将足够慢以在UI中引起jank(即,“生涩”滚动).

考虑使用图像加载库,如Picasso或Universal Image Loader,因为它们可以异步地从位图填充ImageVIEw.

This sample app使用Universal Image Loader来帮助填充RecyclerVIEw(使用GrIDLayoutManager)的内容,数据源是设备上的可用视频.

总结

以上是内存溢出为你收集整理的android – 如何使RecyclerView顺利滚动?全部内容,希望文章能够帮你解决android – 如何使RecyclerView顺利滚动?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1097951.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存