【发布时间】:2020-08-23 06:02:25
【问题描述】:
这遵循上一个问题的逻辑,在此处引用相关代码部分:
我实现了以下查询,它可以返回 0 到数据库中条目数之间的任意数量的结果,具体取决于查询输入文本:
@Query("SELECT * FROM Conversation JOIN ConversationFts ON Conversation.id == ConversationFts.id WHERE ConversationFts.title LIKE :text GROUP BY Conversation.id")
public abstract DataSource.Factory<Integer, Conversation> search(String text);
除了结果总数之外,一切都很好。
由于我每次在返回的观察者中收到结果列表时都将LivePagedListBuilder 配置为setInitialLoadSizeHint(15),因此列表的大小始终为15(如果查询返回的结果较少,则列表的大小会更小),这是观察者第一次为每个唯一列表触发(这意味着每当唯一查询输入返回结果列表时)。一旦列表向下滚动超过 15 个结果,它会根据PageListAdapter 实现更自动地加载,但我从来没有得到除 15 之外的任何其他计数。
searchRepository(myQuery).observe(this, resultList -> {
Log.i("RESULT", resultList.size()); // size is always 15 or less
});
那么我怎样才能从一开始就获得全部结果呢?我的目标是在搜索摘要中向用户显示搜索返回了多少结果,但由于当前的实现不会说超过 15 个结果,如果有超过 15 个结果..
【问题讨论】:
标签: android search android-sqlite android-room android-search