我有一个RecyclerView,可以从服务器加载图像。 当我滚动滚动时非常生涩。 我正在使用滑行来加载图像 我觉得每次滚动回收器视图时都会加载图像。 那么有人可以告诉你如何停止加载图像onscroll ...
谢谢..
答案 0 :(得分:4)
当图像加载完成时,您可能正在做一些奇怪的事情,比如调整视图大小。确保在加载图像时不触发布局调用或执行其他昂贵的操作。在使用Glide加载图像时,几乎总是可以获得相对平滑的滚动。
也就是说,当用户启动/停止滚动时,您可以使用pauseRequests()
和resumeRequests()
来停止/启动图像加载:
// Scrolling starts.
Glide.with(fragment).pauseRequests();
...
// Scrolling stops.
Glide.with(fragment).resumeRequests();
答案 1 :(得分:1)
Thread t = new Thread(new Runnable() {
@Override
public void run() {
Recyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
Glide.with(MainActivity.this).resumeRequests();
}
if (newState == RecyclerView.SCROLL_STATE_DRAGGING) {
Glide.with(MainActivity.this).pauseRequests();
}
super.onScrollStateChanged(recyclerView, newState);
}
});
}
});
t.start();