繁体   English   中英

具有Viewholder模式的RecyclerView暂时阻止滚动回收

[英]RecyclerView with viewholder pattern temporarily prevent recycle on scroll

我有一个回收者视图,其中显示了一堆简单的textview,有些textview旁边有一个按钮。

单击按钮时,我会在特定的textview旁边显示一个进度条,并显示一个简单的媒体播放器进度。

现在,由于我有一个回收站,当媒体播放器正在播放声音和进度条动画时,当用户滚动时,回滚到该项目会将其恢复为原始状态。

有没有办法暂时将商品标记为不可回收? 还是我必须围绕一些状态将回收的视图返回到其播放视图?

不,您不能将项目标记为不可回收,适配器中的所有视图都应回收才能获得更好的性能。 我应该说性能要好得多。 因为适配器只能创建7〜8个或更多(而不是创建100个视图或1000个视图)(取决于屏幕大小)。 每当用户滚动时, Recycler执行其工作。 在您的情况下,您需要跟踪所有项目,例如将每个项目的状态保存在某些数据结构中以及所有这些内容中。

还是我必须设置一些状态以将回收的视图返回到其播放视图

最好的选择是让您分别保存每个项目的状态,一旦绑定了视口,就将播放器设置回原处。 确保正确回收您的项目并进行相应的绑定,否则最终会导致一堆视频被设置为错误的时间。

鉴于我们正在谈论视频加载,您可能还希望控制RecyclerView的滚动事件,并仅在用户停止移动后才启动视频,这样,您很可能会通过不做任何不必要的缓冲来提高性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM