[Android | RecyclerView] OnScrollListener() 参数说明 以及一些额外参数
2016-09-24 17:48
627 查看
昨天学习了慕课网上的ListView的异步加载适配器,异步或线程获取图片,图片的一级缓存,滑动时停止加载等优化。很强大,包括连接网络,json数据解析都是用的基础的东西,没用框架。很适合学习。地址:慕课网 . 然后整理了相关代码。传送门:下载
然后感觉想把这套东西放到新鲜的RecyclerView中,练习一下。但是RecyclerView太强大了。自由度很高。有些东西包括LinearLayoutManager都需要自己加载。本文使用的
在RecyclerView的RecyclerView.Adapter< ViewHolder>适配器中的构造方法里。
构造方法:
使用
其中一段log信息:
然后感觉想把这套东西放到新鲜的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: 20 09-24 16:50:27.771 11872-11872/com.neusoft.lic.imoocrecyclerview E/tag: onScrolled: ---------- dx:0 dy:-78 09-24 16:50:27.771 11872-11872/com.neusoft.lic.imoocrecyclerview E/test: onScrolled: ------- firstVisibleItem:8 lastVisibleItem: 15 visibleItemCount: 8 totalItemCount: 20 09-24 16:50:27.781 11872-11872/com.neusoft.lic.imoocrecyclerview E/tag: onScrolled: ---------- dx:0 dy:-92 09-24 16:50:27.786 11872-11872/com.neusoft.lic.imoocrecyclerview E/test: onScrolled: ------- firstVisibleItem:8 lastVisibleItem: 15 visibleItemCount: 8 totalItemCount: 20 09-24 16:50:27.801 11872-11872/com.neusoft.lic.imoocrecyclerview E/tag: onScrolled: ---------- dx:0 dy:-83 09-24 16:50:27.801 11872-11872/com.neusoft.lic.imoocrecyclerview E/test: onScrolled: ------- firstVisibleItem:8 lastVisibleItem: 14 visibleItemCount: 7 totalItemCount: 20 09-24 16:50:27.816 11872-11872/com.neusoft.lic.imoocrecyclerview E/tag: onScrolled: ---------- dx:0 dy:-78 //..............
相关文章推荐
- Android 通过OnScrollListener来监听RecyclerView的位置
- 关于view.getScrollX()和view.getScrollY()以及OnGestureListener.onScroll()中distanceX,distanceY的说明
- 【Activity&Task&Stack】Android 中 Activity,Task,Stack 以及 Launch Mode 的一些说明
- ViewPager的onPageChangeListener里面的一些方法参数
- Android 5的嵌套滑动机制 和 RecyclerView的一些扩展功能
- [置顶] Android View(二)-View的scrollTo()以及scrollBy()说明
- 【Android】RecyclerView的OnItemClickListener点击事件处理
- 总结的一些android公共库,包含公共的View、缓存以及一些工具类
- iOS开发UI篇—在UIImageView中添加按钮以及Tag的参数说明
- 通过重写OnScrollListener来监听RecyclerView是否滑动到底部
- 【Android】画廊式的图片浏览器,使用HorizontalScrollView取代Gallery,OnClickListener的参数传递
- 举例说明android中Bitmap、ListView以及ImageView的综合使用---显示图片并获取图片的宽和高
- 通过重写OnScrollListener来监听RecyclerView是否滑动到底部
- 图片异步加载框架 Android-Universal-Image-Loader的一些参数说明及方法
- RecyclerView 以及 ItemClickListener的实现
- ViewPager的onPageChangeListener里面的一些办法参数:
- android.view.GestureDetector.OnGestureListener onFling() vs onScroll()
- iOS开发UI篇—在UIImageView中添加按钮以及Tag的参数说明
- android RecyclerView使用说明
- TextView的一些常用属性以及对应参数(部分5.0以上)