滑动 - 暂停图像加载onscroll recyclerview

时间:2015-08-21 13:51:39

标签: android-recyclerview android-glide

我有一个RecyclerView,可以从服务器加载图像。 当我滚动滚动时非常生涩。 我正在使用滑行来加载图像 我觉得每次滚动回收器视图时都会加载图像。 那么有人可以告诉你如何停止加载图像onscroll ...

谢谢..

2 个答案:

答案 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();