Android RecyclerView(九)滑动监听综述
来源:互联网 发布:人工智能的好处 英文 编辑:程序博客网 时间:2024/05/21 18:00
Android RecyclerView(九)滑动监听
1 RecyclerView 的滑动监听
1.1 RecyclerView 设置滑动监听
mRecyclerView.setOnScrollListener(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); }});
1.2 滑动监听回调方法说明
1.3 判断RecyclerView的滑动方向
- onScrollStateChanged(RecyclerView recyclerView, int newState)这个方法在RecyclerView的滑动状态改变时会调用
对应的参数 newState 有三种状态 ,官方这样描述
/** * The RecyclerView is not currently scrolling. * @see #getScrollState() */ public static final int SCROLL_STATE_IDLE = 0; /** * The RecyclerView is currently being dragged by outside input such as user touch input. * @see #getScrollState() */ public static final int SCROLL_STATE_DRAGGING = 1; /** * The RecyclerView is currently animating to a final position while not under * outside control. * @see #getScrollState() */ public static final int SCROLL_STATE_SETTLING = 2;
也就是说,newState=0时,RecyclerView在滑动状态中
newState=1时,RecyclerView在停止状态中
newState=2时,RecyclerView滑动中的条目显示位置发生了变化,或者说是当前选中的条目位置发生的变化
- onScrolled(RecyclerView recyclerView, int dx, int dy ) 这个方法在RecyclerView开始滑动时实时回调
参数dx dy分别是RecyclerView在滑动过程中,在x轴方向(横向滑动)与Y轴方向(纵向滑动)的偏移量
dx>0 向右滑动
dx<0 向左滑动
dy<0 向上滑动
dy>0 向下滑动
2 RecyclerView 的滑动滑动距离获取
可以在RecyclerView的滑动监听中调用此方法,以不断的来获取RecyclerView的滑动距离
//mMTrainLinearLayoutManager 是 Recyclerview对应的布局管理者if (mMTrainLinearLayoutManager != null) { //获取RecyclerView当前顶部显示的第一个条目对应的索引 int position = mMTrainLinearLayoutManager.findFirstVisibleItemPosition(); //根据索引来获取对应的itemView View firstVisiableChildView = mMTrainLinearLayoutManager.findViewByPosition(position); //获取当前显示条目的高度 int itemHeight = firstVisiableChildView.getHeight(); //获取当前Recyclerview 偏移量 int flag = (position) * itemHeight - firstVisiableChildView.getTop(); LogUtils.d("scroll " + dx + " " + dy + " flag " + flag); }
3 获取RecyclerView 当前页面显示的第一个条目或者最后一个条目对应的索引值
//mLinearLayoutManager 是 Recyclerview对应的布局管理者//所有的条目个数int itemCount1 = mLinearLayoutManager.getItemCount();//获取当前RecyclerView显示最后一个条目的位置int mLastVisibleItemPosition = mLinearLayoutManager.findLastVisibleItemPosition();//获取当前RecyclerView显示的第一个条目的位置int mFirstVisibleItemPosition = mLinearLayoutManager.findFirstVisibleItemPosition();//获取当前RecyclerView完全显示出的最后一个条目的位置int mLastCompletelyVisibleItemPosition = mLinearLayoutManager.findLastCompletelyVisibleItemPosition();//获取当前RecyclerView完全显示出的第一个条目的位置int mFirstCompletelyVisibleItemPosition = mLinearLayoutManager.findFirstCompletelyVisibleItemPosition();
阅读全文
0 0
- Android RecyclerView(九)滑动监听综述
- Android(滑动控件RecyclerView)
- 监听RecyclerView滑动到末端
- Android RecyclerView横向滑动
- ListView,ScrollView,RecyclerView上下滑动监听
- RecyclerView点击,长按,滑动监听。
- recyclerview滑动到底部时监听操作
- NestedScrollView 内嵌 RecyclerView 滑动监听问题
- Android——滑动监听RecyclerView线性流+左右划删除+上下移动
- android viewpager 滑动监听
- android listview 滑动监听
- android 实现滑动监听
- Android手势滑动监听
- Android Webview 滑动监听
- android滑动事件监听
- Android ScrollView滑动监听
- Android ViewPager 监听滑动
- Android 实现滑动监听
- React native 常见问题
- Java程序员应该知道的10个调试技巧
- Atitit 大脑能够储存多大的数据量
- Longest Substring Without Repeating Characters
- 计算机网络概述(三)
- Android RecyclerView(九)滑动监听综述
- Atitit 怎么阅读一本书 消化 分析 检索 attilax总结 1. 读书的本质 是数据的处理,大量的数据,处理能力有限的大脑2 2. ETL数据清洗转换 摘要,缩小数据规模2 2.1
- Eclipse修改properties文件默认编码
- poj2406 Power Strings(kmp求最小循环节)
- Atitit 为什么要读书,读书的好处是什么 attilax总结
- 背包问题(01背包、完全背包)死记应试
- Codeforces854D Jury Meeting
- 成为优秀Java程序员的10大技巧
- atitit 读书与获取知识资料的attilax的总结与心得 v6