博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 滚动RecyclerView加载图片时的流畅度优化
阅读量:6237 次
发布时间:2019-06-22

本文共 1606 字,大约阅读时间需要 5 分钟。

实现:使用onScrollStateChanged回调检测滚动状态,并在RecyclerViewAdapter内部设置类似isScrolling的状态值来控制网络图片的加载。 

下面是代码举例:

// BaseAdapter中添加如下代码public abstract class BaseRecyclerViewAdapter
extends RecyclerView.Adapter
{ …… protected boolean isScrolling = false; …… public void setScrolling(boolean scrolling) { isScrolling = scrolling; }}

具体的子Adapter实现:

// 在子Adapter中的onBind里进行控制public class SubRecyclerViewAdapter extends BaseRecyclerViewAdapter
{ …… @Override public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { RecyclerViewHolder holder = (RecyclerViewHolder) viewHolder; …… if (!TextUtils.isEmpty(data.getAvatarUrl()) && !isScrolling) { // 这里可以用Glide等网络图片加载库 } else { holder.avatarImg.setImageResource(占位图本地资源); } super.onBindViewHolder(holder, position); }}

在UI层进行监听:

// 外部对RecyclerView设置监听mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {    @Override    public void onScrollStateChanged(RecyclerView recyclerView, int newState) {        // 查看源码可知State有三种状态:SCROLL_STATE_IDLE(静止)、SCROLL_STATE_DRAGGING(上升)、SCROLL_STATE_SETTLING(下落)        if (newState == SCROLL_STATE_IDLE) { // 滚动静止时才加载图片资源,极大提升流畅度            mRecyclerViewAdapter.setScrolling(false);            mRecyclerViewAdapter.notifyDataSetChanged(); // notify调用后onBindViewHolder会响应调用        } else            mRecyclerViewAdapter.setScrolling(true);        super.onScrollStateChanged(recyclerView, newState);    }});mRecyclerView.setAdapter(mRecyclerViewAdapter);

 

转载地址:http://txzia.baihongyu.com/

你可能感兴趣的文章
SVG的a链接
查看>>
MSSQL查找前一天,前一月,前一年的数据,对比当前时间记录查找超过一年,一月,一天的数据...
查看>>
基于三星I9250演示自己弄的Miracast功能-手机对手机
查看>>
【转】MOCK测试
查看>>
pyhon——进程线程、与协程基础概述
查看>>
Centos 7配置LAMP
查看>>
重载与重写
查看>>
SQLite学习笔记(十二)&&虚拟机指令
查看>>
UVALive 4221 Walk in the Park 扫描线
查看>>
在vc中使用xtremetoolkit界面库-----安装及环境配置
查看>>
[Redux] Extracting Presentational Components -- Footer, FilterLink
查看>>
将数据写入TXT文件中,file_put_contents与fwrite
查看>>
Win 2008 r2 远程桌面多用户登陆,一用户多登陆配置
查看>>
ANTLR4权威參考手冊(一)
查看>>
【UVA 11462】 Age Sort(基数排序)
查看>>
Linux命令: chown
查看>>
[转]SpringMVC+Hibernate+Spring 简单的一个整合实例
查看>>
【转】在Win7的IIS上搭建FTP服务及用户授权
查看>>
MyCAT ER分片的验证
查看>>
对匿名函数的深入理解(彻底版)
查看>>