[Android | RecyclerView] OnScrollListener() 参数说明 以及一些额外参数
来源:互联网 发布:小强软件测试 编辑:程序博客网 时间:2024/04/24 13:52
昨天学习了慕课网上的ListView的异步加载适配器,异步或线程获取图片,图片的一级缓存,滑动时停止加载等优化。很强大,包括连接网络,json数据解析都是用的基础的东西,没用框架。很适合学习。地址:慕课网 . 然后整理了相关代码。传送门:下载
然后感觉想把这套东西放到新鲜的RecyclerView中,练习一下。但是RecyclerView太强大了。自由度很高。有些东西包括LinearLayoutManager都需要自己加载。本文使用的RecyclerView.OnScrollListener()
就是对应的 ListView的AbsListView.OnScrollListener
。有很多地方发生了改变。所以需要记录下。
在RecyclerView的RecyclerView.Adapter< ViewHolder>适配器中的构造方法里。
构造方法:
public MyAdapter(Context context, List<ImoocBean> list, RecyclerView recyclerView) { context.getTheme().resolveAttribute( R.attr.selectableItemBackground, new TypedValue(), true); //传递context this.context = context; //传递数据 this.mList = list; //使用传过来的RecyclerView设置滚动监听 recyclerView.addOnScrollListener( ...); // ...... do other things}
使用recyclerView.addOnScrollListener();
设置监听器,而不是setOnScrollListener()
, 这个方法已经被舍弃了。
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); } @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); //dx为RecyclerView沿着X轴(横向)滑动时偏移量. //正数为正向滑动(向右)偏移量,负数为反向滑动(向左)偏移量 //dy为RecyclerView沿着y轴(纵向)滑动时偏移量. //正数为正向滑动(向下)偏移量,负数为反向滑动(向上)偏移量 Log.e("tag", "onScrolled: ---------- dx:"+dx+" dy:"+dy); RecyclerView.LayoutManager manager = recyclerView.getLayoutManager(); //firstVisibleItem 为RecyclerView 可见的第一item的position int lastVisibleItem = ((LinearLayoutManager) manager). findLastVisibleItemPosition(); //lastVisibleItem 为RecyclerView 可见的最后一个item的position int firstVisibleItem = ((LinearLayoutManager) manager). findFirstVisibleItemPosition(); //visibleItemCount 为RecyclerView 当前可见item的数量 int visibleItemCount = manager.getChildCount(); //totalItemCount 为RecyclerView 的所有item的总数量 int totalItemCount = manager.getItemCount(); Log.e("test", "onScrolled: ------- firstVisibleItem:" +firstVisibleItem +" lastVisibleItem: " +lastVisibleItem +" visibleItemCount: "+visibleItemCount +" totalItemCount: " +totalItemCount); // ...... do } });
其中一段log信息:
//..............09-24 16:50:27.751 11872-11872/com.neusoft.lic.imoocrecyclerview E/test: onScrolled: ------- firstVisibleItem:9 lastVisibleItem: 15 visibleItemCount: 7 totalItemCount: 2009-24 16:50:27.771 11872-11872/com.neusoft.lic.imoocrecyclerview E/tag: onScrolled: ---------- dx:0 dy:-7809-24 16:50:27.771 11872-11872/com.neusoft.lic.imoocrecyclerview E/test: onScrolled: ------- firstVisibleItem:8 lastVisibleItem: 15 visibleItemCount: 8 totalItemCount: 2009-24 16:50:27.781 11872-11872/com.neusoft.lic.imoocrecyclerview E/tag: onScrolled: ---------- dx:0 dy:-9209-24 16:50:27.786 11872-11872/com.neusoft.lic.imoocrecyclerview E/test: onScrolled: ------- firstVisibleItem:8 lastVisibleItem: 15 visibleItemCount: 8 totalItemCount: 2009-24 16:50:27.801 11872-11872/com.neusoft.lic.imoocrecyclerview E/tag: onScrolled: ---------- dx:0 dy:-8309-24 16:50:27.801 11872-11872/com.neusoft.lic.imoocrecyclerview E/test: onScrolled: ------- firstVisibleItem:8 lastVisibleItem: 14 visibleItemCount: 7 totalItemCount: 2009-24 16:50:27.816 11872-11872/com.neusoft.lic.imoocrecyclerview E/tag: onScrolled: ---------- dx:0 dy:-78//..............
0 0
- [Android | RecyclerView] OnScrollListener() 参数说明 以及一些额外参数
- IBATIS一些参数说明
- 深度学习的一些参数说明以及trick
- autocomplete参数说明以及实例
- Android动画参数说明
- Android - monkey 参数说明
- android:inputType参数说明
- Android Monkey参数说明
- android一些前台参数
- ajaxfileupload上传带额外参数
- Android中ListView.getCount()与ListView.getChildCount()区别和OnScrollListener()各个参数的区别
- Android中ListView.getCount()与ListView.getChildCount()区别和OnScrollListener()各个参数的区别
- Android中ListView.getCount()与ListView.getChildCount()区别和OnScrollListener()各个参数的区别
- Android中ListView.getCount()与ListView.getChildCount()区别和OnScrollListener()各个参数的区别
- Android中ListView.getCount()与ListView.getChildCount()区别和OnScrollListener()各个参数的区别
- Android中ListView.getCount()与ListView.getChildCount()区别和OnScrollListener()各个参数的区别
- Qt configure 参数不完全说明 以及 精简系统 减少编译时间的一些方法
- Android 模拟器创建参数说明
- HTML5_02
- Java实现定时任务的三种方式
- 即时推送--个推的集成过程整理
- swift3新路程(13)print函数
- 【NOIP模拟】我的快乐时代
- [Android | RecyclerView] OnScrollListener() 参数说明 以及一些额外参数
- 社交类APP大全
- Windows8仍存十大疑问:安全性最关键
- Android入门笔记之MarqueeText
- SpringMVC映射器和适配器
- 【备忘】【No5】微信公众平台开发入门到实战开发视频教程(Java+PHP)
- 第25周-Photoshop-脚本编程简介
- Android 上百实例源码分析以及开源分析
- Android为CheckBox(复选框)设置可规定大小的图片