recyclerview 滑动到当前_Android recyclerview的滑动到指定的item
注意点
1.滑动到指定位置的方法要写在数据真正加载完成以后,而不是加载数据方法的后面。
2.指定的位置是否可见。
快速定位
public static void MoveToPosition(int n) {
manager.scrollToPosition(n);
}
缓慢定位(借鉴网络上整理)
/**
* 缓慢滑动
*
* 当指定位置位于第一个可见位置之上时,可以滚动,利用smoothScrollToPosition实现
* 当指定位置位于可视位置之间时,得到距离顶部的距离,然后smoothScrollBy向上滚动固定的距离
* 当指定的位置位于最后一个可见位置之下时,可以滚动,利用利用smoothScrollToPosition实现实现
*/
public void moveToPosition(int position) {
int firstItem = mRecyclerView.getChildLayoutPosition(mRecyclerView.getChildAt(0));
int lastItem = mRecyclerView.getChildLayoutPosition(mRecyclerView.getChildAt(mRecyclerView.getChildCount() - 1));
if (position < firstItem||position>lastItem) {
mRecyclerView.smoothScrollToPosition(position);
} else {
int movePosition = position - firstItem;
int top = mRecyclerView.getChildAt(movePosition).getTop();
mRecyclerView.smoothScrollBy(0, top);
}
}
另一种获得可见位置的方法
public void moveToPosition(RecyclerView recyclerView, int position) {
RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
//因为只有LinearLayoutManager 才有获得可见位置的方法
if (layoutManager instanceof LinearLayoutManager) {
LinearLayoutManager linearLayoutManager = (LinearLayoutManager) layoutManager;
int firstItem = linearLayoutManager.findFirstVisibleItemPosition();
int lastItem = linearLayoutManager.findLastVisibleItemPosition();
if (position < firstItem || position > lastItem) {
mRecyclerView.smoothScrollToPosition(position);
} else {
int movePosition = position - firstItem;
int top = mRecyclerView.getChildAt(movePosition).getTop();
mRecyclerView.smoothScrollBy(0, top);
}
}
}
结语
菜鸟的学习足迹,有错误还请指正,笔芯
~喵印
recyclerview 滑动到当前_Android recyclerview的滑动到指定的item相关推荐
- RecyclerView跳转到指定位置,RecyclerView上下滑动监听,RecyclerView滑动速度
1.RecyclerView跳转到指定位置 只需调用recycleview的置顶方法: recyclerView.scrollToPosition(15); 如果你需要让第15item在屏幕居中,只需 ...
- Android取消RecyclerView、ListView、ScrollView、HorizontalScrollView滑动到边缘闪现灰白色水波纹动画
Android取消RecyclerView.ListView.ScrollView.HorizontalScrollView滑动到边缘闪现灰白色水波纹动画 标准的Android RecyclerVie ...
- Android 横向列表滑动自动选中,RecyclerView实现;
RecyclerView实现横向滑动后自动选中条目,点击其它条目自动移动到中间位置并选中: 横向的列表就是上面的效果,下面是动图: 效果就是这样的 , 有当前选中回调 , 也可以设置当前选中的条目: ...
- viewpager 自定义翻页效果_Android RecyclerView自定义LayoutManager
在第一篇中已经讲过,LayoutManager主要用于布局其中的Item,在LayoutManager中能够对每个Item的大小,位置进行更改,将它放在我们想要的位置,在很多优秀的效果中,都是通过自定 ...
- android 嵌套分组拖动_Android NestedScrolling嵌套滑动机制
Android NestedScrolling嵌套滑动机制 最近项目要用到官网的下拉刷新SwipeRefreshLayout,它是个容器,包裹各种控件实现下拉,不像以前自己要实现事件的拦截,都是通过对 ...
- android 滑动取值_Android中滑屏实现
前言: 虽然本文标题的有点标题党的感觉,但无论如何,通过这篇文章的学习以及你自己的实践认知,写个简单的滑屏小 Demo还是justso so的. 友情提示: 在继续往下面读之前,希望您对以下知识点有 ...
- Android 淘宝滑动条,淘宝菜单滑动条;
淘宝菜单滑动条,图如下: 实现一下这个效果 , 上面是列表,可以用RecyclerView实现 , 下面跟随菜单滑动的条可以用View做位移动画实现: <LinearLayout xmlns:a ...
- 【RecyclerView】 十二、RecyclerView 数据更新 ( 修改单条数据 | 批量修改数据 )
文章目录 一.修改单条数据 二.批量修改数据 三.完整代码示例 四.RecyclerView 相关资料 一.修改单条数据 修改单条数据 : 调用 RecyclerView.Adapter 的 void ...
- 【RecyclerView】 九、为 RecyclerView 设置不同的布局样式
文章目录 一.为 RecyclerView 设置不同的布局样式 二.完整代码 三.RecyclerView 相关资料 一.为 RecyclerView 设置不同的布局样式 为 RecyclerView ...
最新文章
- Android环境搭建和Android HelloWorld—Android开发环境搭建
- Vue项目中使用wangEditor富文本输入框(推荐)
- P2480 [SDOI2010]古代猪文
- linux命令tree
- Qt Designer的小部件编辑模式
- jquery右下角自动弹出关闭层
- 信息学奥赛一本通(1160:倒序数)
- 韩国央行行长李柱烈:加密货币的波动给金融稳定带来风险
- React-Native 之 GD (三)近半小时热门
- 苹果发信用卡——大数据解读硅谷巨头如何发力金融科技
- 基于Matlab的随机森林算法实现(附算法介绍及代码详解)
- CentOS7下ldap的安装
- oracle omf管理,使用OMF管理表空间
- 基于MATLAB平台实现红绿灯(交通灯)识别
- 提升效率:优化Java代码的35个小技巧
- Linux下禁用root远程登录并且新建一个用户赋予root权限
- java modbus4j_java使用modbus4j来实现modbusTCP通信
- 微信小程序开发实现登陆教程
- 应用案例 | 12年雪佛兰科鲁兹网络故障
- matlab 在半对数坐标系下绘图
热门文章
- 解决AttributeError: XXX instance has no attribute ‘xxx‘的问题(新手必备)
- Eclipse中创建SpringBoot项目流程,及报错解决方案
- VSCODE编译头文件时函数没有定义的解决方案(VSCODE手动链接C文件方法)
- vs2019下载和更新速度非常慢的解决方案
- iis 网页HTTP 错误 404.3 - Not Found解决方案
- Akka的好用例[关闭]
- Android Studio 打开后无故爆红后解决办法
- Lync Server 2010迁移至Lync Server 2013故障排错Part1:缺少McsStandalone.msi
- linux的yum update命令
- this.name=name;和this.setName(name);的区别