包含来自过滤器的可变内容的PageList不会刷新

时间:2019-05-15 08:01:46

标签: android pagedlist

我必须通过将过滤器参数MinAgeMaxAge传输到ItemDataSource类来过滤PageList内容:

public class ItemDataSource extends PageKeyedDataSource<Integer, Item> {
    @Override
    public void loadInitial(@NonNull LoadInitialParams<Integer> params, @NonNull final LoadInitialCallback<Integer, Item> callback) {

        loadData(Util.getMinAge, Util.getMaxAge);
    }
    // and so on in loadBefore and loadAfter methods
}

这是刷新方法:

public void refresh() {
        RecyclerView recyclerView = findViewById(R.id.list);

        ItemViewModel itemViewModel = ViewModelProviders.of(MainActivity.this)
                .get(ItemViewModel.class);
        final ItemAdapter adapter = new ItemAdapter(MainActivity.this);

        itemViewModel.itemPagedList.observe(MainActivity.this,
                new Observer<PagedList<Item>>() {
                    @Override
                    public void onChanged(@Nullable PagedList<Item> items) {

                        adapter.submitList(items);

                    }
                });

        recyclerView.setAdapter(adapter);
    }

但是此方法不会重新创建包含新过滤器参数的ItemDataSource,因此我会刷新列表但使用旧参数。

我该如何解决这个问题?

0 个答案:

没有答案