Android(安卓)RecyclerView:设置指定位置的两种方法
16lz
2021-01-24
方法一,直接使用当前的manager
/* RecyclerView 移动到当前位置, * * @param manager 设置RecyclerView对应的manager * @param n 要跳转的位置 */ public static void MoveToPosition(LinearLayoutManager manager, int n) { manager.scrollToPositionWithOffset(n, 0); manager.setStackFromEnd(true); }
方法二、根据当前RecyclerView的条目数量,这个相对复杂一些,但是可以有效地避免指针越界呦..
/** * RecyclerView 移动到当前位置, * * @param manager 设置RecyclerView对应的manager * @param mRecyclerView 当前的RecyclerView * @param n 要跳转的位置 */public static void MoveToPosition(LinearLayoutManager manager, RecyclerView mRecyclerView, int n) { int firstItem = manager.findFirstVisibleItemPosition(); int lastItem = manager.findLastVisibleItemPosition(); if (n <= firstItem) { mRecyclerView.scrollToPosition(n); } else if (n <= lastItem) { int top = mRecyclerView.getChildAt(n - firstItem).getTop(); mRecyclerView.scrollBy(0, top); } else { mRecyclerView.scrollToPosition(n); }}
更多相关文章
- android线程相关1
- android View的三个构造方法 简单总结
- Android抓包方法
- okhttp源码学习分析一
- Android开发经验总结
- Android倒计时实现
- android dialog 背景透明的样式
- Android(安卓)框架:快速开发中Util常用工具类总结
- Android之动态改变控件大小