android recyclerview 滚动监听,Android RecyclerView(九)滑动监听综述
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();
android recyclerview 滚动监听,Android RecyclerView(九)滑动监听综述相关推荐
- android 字体滚动效果,2018-02-05 android 左右字滚动效果(跑马灯效果),能直接拿来用的...
MarqueeView 俗名:可垂直跑.可水平跑的跑马灯 学名:可垂直翻.可水平翻的翻页公告 com.sunfusheng marqueeview 1.3.3 pom compile 'com.sun ...
- android webview滚动到底部,Android WebView实现网页滚动截图
WebView 网页滚动截屏,可对整个网页进行截屏而不是仅当前屏幕哦! 注意若Web页面存在position:fixed; 的话得在调用前设置为 position:absolute; 哦,否则会出现很 ...
- Android RecyclerView(九)滑动监听综述
Android RecyclerView(九)滑动监听 1 RecyclerView 的滑动监听 1.1 RecyclerView 设置滑动监听 mRecyclerView.setOnScrollLi ...
- Android监听左右滑删除通知,Android 滑动监听RecyclerView线性流+左右划删除+上下移动...
废话不多说了,直接给大家贴代码了.具体代码如下所示: xmlns:tools="http://schemas.android.com/tools" android:layout_w ...
- android 标题栏颜色渐变和阴影,ScrollView上下滑动监听,及判断scrollView是否滚动到底部
1.创建 ScrollListener 接口监听滑动距离 public interface ScrollListener {void onScrollChanged(ScrollListenerVi ...
- RecyclerView跳转到指定位置,RecyclerView上下滑动监听,RecyclerView滑动速度
1.RecyclerView跳转到指定位置 只需调用recycleview的置顶方法: recyclerView.scrollToPosition(15); 如果你需要让第15item在屏幕居中,只需 ...
- Android 系统(188)---Android开发:ListView、AdapterView、RecyclerView全面解析
Android开发:ListView.AdapterView.RecyclerView全面解析 目录 ListView.AdapterView.RecyclerView全面解析.png Adapter ...
- android 瀑布流的实现(用recyclerview的实现的)
先看下效果图 代码的整体布局: 首先要做的就是导入v7包,这个v7的位置就在自己的sdk目录下,具体位置 我的博客说过了,这里就不再说了, 下面就是布局代码 main_activity <Rel ...
- Android 高级UI设计笔记20:RecyclerView 的详解之RecyclerView添加Item点击事件
1. 引言: RecyclerView侧重的是布局的灵活性,虽说可以替代ListView但是连基本的点击事件都没有,这篇文章就来详细讲解如何为RecyclerView的item添加点击事件,顺便复习一 ...
- android listview 滑动条显示_第七十六回:Android中UI控件之RecyclerView基础
各位看官们,大家好,上一回中咱们说的是Android中UI控件之ListView优化的例子,这一回咱们说的例子是UI控件之RecyclerView.闲话休提,言归正转.让我们一起Talk Androi ...
最新文章
- 数据库连接池到底应该设多大?
- OpenCV | OpenCV哈里斯 (Harris)角点检测
- Java内存模型深度解析:总结--转
- 美团搜索中NER技术的探索与实践
- mysql的学习笔记
- leetcode 926. Flip String to Monotone Increasing | 926. 将字符串翻转到单调递增(前缀和)
- CMFCTabCtrl 切换页面闪烁问题
- 伪静态设置 html,Apache下伪静态html(URL Rewrite)的设置方法
- 枚举算法:完美综合式
- 有哪些讽刺性极强的文案?
- hp eva 4400存储配置手记
- 如果抛开 Spring,如何自己实现 AOP?面试必问!
- ssh框架超详细总结
- CSS编写格式边框与渐变内容补充
- g2o学习记录(1)安装和运行其下面的unit_test项目
- mysql视图 实验报告_数据库实验报告(视图).doc
- Flink实操 : 算子操作
- jsp的内置对象有哪些,四大作用域有哪些??
- 基于众包的可视化图表数据提取
- HDU - 2044一只小蜜蜂 一道递推题
热门文章
- [公告]积分算法问题改正
- java 天上掉东西游戏的源代码_【小游戏】前两天的小游戏终于调试成功了。。。。直接源代码...
- 修改 font的文本信息_C#窗体,文本框如何实现类似html的输入提示信息
- RecyclerView Widget 使用
- 如果让你写一个消息队列,该如何进行架构设计啊?说一下你的思路
- 常用排序算法:桶排序
- linux下order by 报出ORDER BY clause is not in SELECT list
- Spring MVC接受参数的注解
- css常见样式命名思想
- How is NGINX Unit different from Apache?