BRVAH + RecyclerView模式出现一直调用onLoadMoreRequested的问题

开发过程中发现页面一直在抖动式的执行加载更多,如下所示:

     BRVAH + RecyclerView模式出现一直调用onLoadMoreRequested的问题_第1张图片

经过调试,发现程序一直在回调onLoadMoreRequested方法,

这是什么情况???

查看源码后,发现原来是处理获取到的数据时,出现的问题(以下插入的是假数据):

private void load(int page){
            mList.clear();
            for (int i = 0; i < PAGE_COUNT; i++) {
                int index = (int) (Math.random() * 10);
                if (index > 9) index = 9;
                else if (index < 0) index = 0;
                TempInfo item = new TempInfo(thumbs[index], titles[index], types[index]);
                mList.add(item);
            }
            dealWithData(page);
}

这里为了不创建过多无用的对象,所以创建了一个全局的集合对象mList,每次获取数据前先clean掉旧数据,然后读取新数据。

而恰恰就是这个看似正确的处理方法,导致了adapter无限回调onLoadMoreRequested方法的罪魁祸首。

应该直接新建集合对象接收新数据,此处应改为mList = new ArrayList<>();

改完之后一切运行正常。

 

 

 

你可能感兴趣的:(其他)