我在RecyclerView中从SQLite数据库加载数据,每个加载周期有25个记录。我弄清楚了所有事情,但在RecyclerView滚动监听器中调用数据加载方法的逻辑存在问题 问题是列表在模拟器中的recyclerView滚动中很好地加载但是当我在物理设备中测试时,在联想Phab 2上它工作正常但在Mi注释3中,列表没有加载(有时加载,有时不加载)更多到达滚动底部的记录。
以下是我在RecyclerView滚动侦听器中使用的代码
@Entity
@OneToMany
@ManyToOne
答案 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}}
希望这有帮助。