android 加载视图资源,Android Recyclerview预加载视图

我想知道当用户滚动得更快时,我怎么能避免回收者视图中的小白色“闪烁”.

当然可以通过在可见屏幕之外预加载更多视图来避免闪烁

我找不到任何可以做到的事情,虽然这一定是一个非常常见的任务?

我在博客上试过这段代码:

public class PreCachingLayoutManager extends LinearLayoutManager { private static final int DEFAULT_EXTRA_LAYOUT_SPACE = 600; private int extraLayoutSpace = -1; private Context context; public PreCachingLayoutManager(Context context) { super(context); this.context = context; } public PreCachingLayoutManager(Context context, int extraLayoutSpace) { super(context); this.context = context; this.extraLayoutSpace = extraLayoutSpace; } public PreCachingLayoutManager(Context context, int orientation, boolean reverseLayout) { super(context, orientation, reverseLayout); this.context = context; } public void setExtraLayoutSpace(int extraLayoutSpace) { this.extraLayoutSpace = extraLayoutSpace; } @Override protected int getExtraLayoutSpace(RecyclerView.State state) { if (extraLayoutSpace > 0) { return extraLayoutSpace; } return DEFAULT_EXTRA_LAYOUT_SPACE; } }

然后我使用setLayoutManager()将LayoutManager分配给构造函数中的自定义Recyclerview

它是“自定义”,但我只想在构造函数中设置LayoutManager,这就是为什么我覆盖了RecyclerView

不幸的是,这没有任何影响

最佳答案

RecyclerView已经是一个非常有效的API,通常如果您有帧丢失,您可以优化您的项目布局更轻,并确保您在回收视图时释放资源.实际上没有必要预加载任何东西.

这是一篇博客文章,提供了如何做这些事情的一些想法

https://blog.workable.com/recyclerview-achieved-60-fps-workables-android-app-tips/

他们在这篇文章中没有提到它,但如果你的项目有图像,请确保这些图像不是太大.

重点是尽可能快地绘制您的视图,因为滚动时不断重绘所有内容.

点击查看更多相关文章

转载注明原文:Android Recyclerview预加载视图 - 乐贴网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值