无尽的RecyclerView数据加载逻辑在所有设备上都不一致

时间:2017-07-09 08:59:17

标签: android kotlin

我在RecyclerView中从SQLite数据库加载数据,每个加载周期有25个记录。我弄清楚了所有事情,但在RecyclerView滚动监听器中调用数据加载方法的逻辑存在问题 问题是列表在模拟器中的recyclerView滚动中很好地加载但是当我在物理设备中测试时,在联想Phab 2上它工作正常但在Mi注释3中,列表没有加载(有时加载,有时不加载)更多到达滚动底部的记录。

以下是我在RecyclerView滚动侦听器中使用的代码

@Entity
@OneToMany
@ManyToOne

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。试试这个

if (limit < returnedRowCount_fromDatabase) {
    if((dy > 0) && (linearLayoutManager.findLastCompletelyVisibleItemPosition() == rowList.size() - 1)){
        limit += 25;
        load_Data();
      }
}

答案 1 :(得分:0)

我写了class,适用于所有类型的LayoutManagers。它在仿真器和真实设备上进行了测试。

它具有阻止下一页双重加载的阻止程序。当RecyclerViewOnScrollUpdater.loading返回true时,不会再次调用它,直到visibleThreshold将被设置为false。

您也可以设置enabled并通过设置var text = $('.status-body-text'), btn = $('.btn-overflow'), h = text[0].scrollHeight; if(h > 45) { btn.addClass('less'); btn.css('display', 'block'); } btn.click(function(e) { e.stopPropagation(); if ($(this).hasClass('less')) { $(this).removeClass('less'); $(this).addClass('more'); $(this).text('Hide'); $('#cont' + $(this).attr('val')).animate({'height': h}); } else { $(this).addClass('less'); $(this).removeClass('more'); $(this).text('Show'); $('#cont' + $(this).attr('val')).animate({'height': '45px'}); } }); 启用/停用页面加载。

答案 2 :(得分:0)

我用来滚动更多内容的是:

{{1}}

希望这有帮助。