Recycleview获取第一个和最后一个可见item的位置

recycleView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState){
               super.onScrollStateChanged(recyclerView, newState);
               RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
               //判断是当前layoutManager是否为LinearLayoutManager
               // 只有LinearLayoutManager才有查找第一个和最后一个可见view位置的方法
               if (layoutManager instanceof LinearLayoutManager) {
                    LinearLayoutManager linearManager = (LinearLayoutManager) layoutManager;
                    //获取第一个可见view的位置
                    int firstItemPosition = linearManager.findFirstVisibleItemPosition();
                    //获取最后一个可见view的位置
                    int lastItemPosition = linearManager.findLastVisibleItemPosition(); 
                    }
                }
         
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
            }
        });

你可能感兴趣的:(Recycleview获取第一个和最后一个可见item的位置)