如何等待ListAdapter.submitList()执行并调用RecyclerView.smoothScrollToPosition(0);

问题描述 投票:2回答:1

我有一个RecyclerView recyclerView,它链接到ListAdapter adapter。 “列表”从Firebase数据库获取新数据,并且“列表”根据某些对象属性进行排序。然后,我打电话给adapter.submitList(list)更新recyclerView-这非常完美!

但是,我希望recyclerView在添加新数据后滚动到列表的顶部。但是我看到adapter.submitList(list)在单独的线程上运行。因此,我该如何知道何时完成提交并致电recyclerView.smoothScrollToPosition(0);

让我知道是否应该提供更多详细信息。

android android-recyclerview listadapter
1个回答
0
投票

[ListAdapter#submitList()具有另一个重载方法,该方法将第二个参数作为Runnable。

根据文档:

提交回调可用于知道何时提交列表,但请注意*可能不会执行。如果列表B在列表A之后紧接提交,并且是*直接提交,将不会运行与列表A关联的回调。

用法:

    listAdapter.submitList(*your_new_list*, new Runnable() {
        @Override
        public void run() {
            // do your stuff
        }
    });
© www.soinside.com 2019 - 2024. All rights reserved.