private void moveToPosition(int n) { //先从RecyclerView的LayoutManager中获取第一项和最后一项的Position int firstItem = mLinearLayoutManager.findFirstVisibleItemPosition(); int lastItem = mLinearLayoutManager.findLastVisibleItemPosition(); //然后区分情况 if (n <= firstItem) { //当要置顶的项在当前显示的第一个项的前面时 recyclerView.scrollToPosition(n); } else if (n <= lastItem) { //当要置顶的项已经在屏幕上显示时 int top = recyclerView.getChildAt(n - firstItem).getTop(); recyclerView.scrollBy(0, top); } else { //当要置顶的项在当前显示的最后一项的后面时 recyclerView.scrollToPosition(n); //这里这个变量是用在RecyclerView滚动监听里面的 // move = true; } }
RecyclerView 滚动
最新推荐文章于 2020-01-07 17:32:39 发布
