RecyclerView 滚动

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 滚动)