java - 如何使 Paging 库与 reverse recyclerview 一起工作?

标签 java android android-recyclerview chat

如何使用最新的带有无限反向recyclerview的分页来聊天?

我有线性布局和反向布局 true:

LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setReverseLayout(true);
layoutManager.setStackFromEnd(true);

和内部滚动监听器:

@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
    super.onScrolled(recyclerView, dx, dy);
    int visibleItemCount = layoutManager.getChildCount();
    int totalItemCount = layoutManager.getItemCount();
    int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();

    if (!isLoading && !isLastPage) {
        if ((visibleItemCount + firstVisibleItemPosition) >= totalItemCount
                && firstVisibleItemPosition >= 0
                && totalItemCount >= PAGE_SIZE) {
            loadMoreItems();
        }
    }
}

获取消息的查询:

SELECT * FROM Message WHERE chatId = :chatId ORDER BY dbId ASC

用于如下房间;

@Query("SELECT * FROM Message WHERE chatId = :chatId ORDER BY dbId ASC")
DataSource.Factory<Integer,Message> fetchAll(String chatId);

问题是,如果我在查询中使用 ASC,列表会自动滚动并获取其他消息。如果使用 DESC,则消息列表不按顺序出现。

有人可以帮忙吗?

最佳答案

我觉得够了

layoutManager.setStackFromEnd(false);


layoutManager.setReverseLayout(true);

如果你在房间数据库中有一个增量列表(行索引/contor),你可以在它之后以 DESC 模式对其进行排序

关于java - 如何使 Paging 库与 reverse recyclerview 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50372529/

相关文章:

android - Compose AnimatedVisibility 转义容器

android - Recyclerview 图像在向上/向下滚动时错位并消失

java - 在 Eclipse 中运行处理小程序

java - 以编程方式启用画中画模式

java - 如何将@Query sql 存储在 CrudRepository 的外部文件中?

android - Firebase 存储图像被旋转

java - 通过 cloudant-client api 访问搜索索引

android - Activity 作为android中的对话框

android - 使用 Asynctask 从 internalStorage 加载 recyclerView 中的位图

java - 使用对话框编辑 RecyclerView 列表项