RecyclerView没法上拉加载更多?--个人笔记

RecyclerView的使用是非常常见的,在加载更多常用的方法是

    private void setLoadMoreListener() {
    final GridLayoutManager layoutManager = (GridLayoutManager)mRecyclerView.getLayoutManager();
    //设置滑动监听,当滑动到最后一个时,加载更多
    if (onScrollListener == null) {
        onScrollListener = new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
             lastVisibleItemPosition=layoutManager.findLastCompletelyVisibleItemPosition();
                if (lastVisibleItemPosition == layoutManager.getItemCount() - 1) {
                    //加载更多
                    page++;
                    getVideoInfo();
                }
            }
        };
        mRecyclerView.setOnScrollListener(onScrollListener);
    }  

但是最近遇到了加载不了的一个坑,加载了一部分,之后就没法加载更多了,找了好久的bug,打印Log日志终于找到了,在这里记录一下,其实就是

  layoutManager.findLastCompletelyVisibleItemPosition();  

这个方法获取数据失败,一直返回-1。有时能够加载,加载一部分就没法加载了,其原因主要这当滑动到最后一个可见的item的时候,这个item的高度超过了手机的屏幕的高度,由于是多个布局,偶尔有一个item的高度超过了屏幕高度,又恰好这个item在最后,就没法加载更多了,没办法,找办法解决呗,
要不就重新把布局相对降低一点高度,让RecyclerView的layoutmanager能够获取到位置,或者寻求其他的加载更多的方法。

你可能感兴趣的:(RecyclerView没法上拉加载更多?--个人笔记)