问题描述
这遵循上一个问题的逻辑,在此引用了相关代码部分:
我实现了以下查询,它可以返回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)
配置为PageListAdapter
,因此列表的大小始终为15(如果查询返回的结果较少,则减小)。第一次为每个唯一列表激发观察者(这意味着每当唯一查询输入返回结果列表时)。列表向下滚动超过15个结果后,根据searchRepository(myQuery).observe(this,resultList -> {
Log.i("RESULT",resultList.size()); // size is always 15 or less
});
实现,它会自动加载,但除15之外,我再也没有其他计数。
pip install xverse
那么,如何从一开始就获得全部结果?我的目标是向用户显示搜索摘要中返回的搜索结果数,但是因为当前实现中不会显示超过15个结果。
解决方法
再次,官方文档在另一个基本情况下失败。我发现的唯一解决方案是运行两个相同的查询。一个用于查找结果的总数,另一个用于显示要显示的实际项目列表。