3

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

谢谢..

4

2 回答 2

4

当图像加载完成时,您可能正在做一些奇怪的事情,例如调整视图大小。确保在加载图像时不会触发布局调用或做其他昂贵的事情。几乎总是可以在使用 Glide 加载图像的同时获得相对平滑的滚动。

也就是说,当用户开始/停止滚动时,您可以使用pauseRequests()andresumeRequests()停止/开始图像加载:

// Scrolling starts.
Glide.with(fragment).pauseRequests();
...
// Scrolling stops.
Glide.with(fragment).resumeRequests();
于 2015-08-21T14:22:53.697 回答
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();
于 2017-05-18T04:39:53.990 回答