gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:41:33 28 4
gpt4 key购买 nike

如何使用最新的带有无限反向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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com