如何使用 ROOM 库在不阻塞 UI 的情况下将数千条记录从本地数据库加载到 recyclerview
How to load thousands of records from local database to recyclerview without blocking UI using ROOM library
我正在使用本地数据库在 recyclerview 上加载记录,问题是记录的大小约为 6000 条,当我单击打开或在 recyclerview 中显示这些记录时,我的设备卡住了几秒钟,出现空白屏幕,几秒钟后它出现并显示记录。有没有办法在不阻塞 UI 的情况下在 recyclerview 上加载数千条记录或数据?请让我知道谢谢
将此方法复制并粘贴到您的 Activity / Baseactivity。并在 yourRecyclerview.setAdapter(YourAdapter)
之后调用它
public void PagginationRecyclerView(RecyclerView rv) {
rv.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
int total = layoutManager.getItemCount();
int currentLastItem = layoutManager.findLastVisibleItemPosition();
if (currentLastItem == total - 1) {
Toast.makeText(BaseActivity.this, "Load Next", Toast.LENGTH_SHORT).show();
// Request to Database to load more data
}
}
});
}
我正在使用本地数据库在 recyclerview 上加载记录,问题是记录的大小约为 6000 条,当我单击打开或在 recyclerview 中显示这些记录时,我的设备卡住了几秒钟,出现空白屏幕,几秒钟后它出现并显示记录。有没有办法在不阻塞 UI 的情况下在 recyclerview 上加载数千条记录或数据?请让我知道谢谢
将此方法复制并粘贴到您的 Activity / Baseactivity。并在 yourRecyclerview.setAdapter(YourAdapter)
public void PagginationRecyclerView(RecyclerView rv) {
rv.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
int total = layoutManager.getItemCount();
int currentLastItem = layoutManager.findLastVisibleItemPosition();
if (currentLastItem == total - 1) {
Toast.makeText(BaseActivity.this, "Load Next", Toast.LENGTH_SHORT).show();
// Request to Database to load more data
}
}
});
}