1

我试图在从 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)任何内容时,不会显示占位符。有人可以帮我显示占位符吗?任何帮助将不胜感激。

4

1 回答 1

1

但是,在添加对占位符的支持之前,请记住以下先决条件:

  1. 需要一个可计数的数据集:Room 持久性库中的 DataSource 实例可以有效地计算它们的项目。但是,如果您使用的是自定义本地存储解决方案或纯网络数据架构,那么确定您的数据集包含多少项可能会很昂贵,甚至无法确定

  2. 需要适配器来说明未加载的项目:用于为膨胀准备列表的适配器或表示机制需要处理空列表项目。例如,将数据绑定到 ViewHolder 时,您需要提供默认值来表示未加载的数据。

  3. 需要相同大小的项目视图:如果列表项目的大小可以根据其内容(例如社交网络更新)进行更改,则项目之间的交叉淡入淡出看起来不太好。我们强烈建议在这种情况下禁用占位符

于 2019-08-14T09:45:50.830 回答