我试图在从Firestore获取数据时显示占位符。这是我尝试过的:
class BarsViewModel extends AndroidViewModel {
private PagedList.Config config;
private BarSourceFactory factory;
private LiveData<PagedList<Bar>> liveData;
BarsViewModel(Application application) {
super(application);
config = new PagedList.Config.Builder()
.setEnablePlaceholders(true) //Nothing happens
.setPageSize("15")
.build();
factory = new BarSourceFactory();
liveData = new LivePagedListBuilder<>(factory, config).build();
}
LiveData<PagedList<Bar>> getBarLiveData() {
return liveData;
}
}
当我添加.setEnablePlaceholders(true)
没有任何反应时,不显示占位符。有人可以帮我显示占位符吗?任何帮助将不胜感激。
但是,在添加对占位符的支持之前,请记住以下先决条件:
-
需要可计数的数据集:Room 持久性库中的 DataSource 实例可以有效地对其项目进行计数。但是,如果您使用的是自定义本地存储解决方案或仅网络数据体系结构,则确定数据集包含多少项可能很昂贵,甚至无法确定
。 -
要求适配器考虑卸载的项目:用于准备膨胀列表的适配器或表示机制需要处理空列表项。例如,将数据绑定到 ViewHolder 时,需要提供默认值来表示卸载的数据。
-
需要相同大小的项目视图:如果列表项大小可以根据其内容(如社交网络更新)进行更改,则项目之间的交叉淡入淡出看起来并不好。在这种情况下,我们强烈建议禁用占位符。