我有一个RecyclerView recyclerView
,它链接到ListAdapter adapter
。 “列表”从Firebase数据库获取新数据,并且“列表”根据某些对象属性进行排序。然后,我打电话给adapter.submitList(list)
更新recyclerView-这非常完美!
但是,我希望recyclerView在添加新数据后滚动到列表的顶部。但是我看到adapter.submitList(list)
在单独的线程上运行。因此,我该如何知道何时完成提交并致电recyclerView.smoothScrollToPosition(0);
让我知道是否应该提供更多详细信息。
[ListAdapter#submitList()
具有另一个重载方法,该方法将第二个参数作为Runnable。
根据文档:
提交回调可用于知道何时提交列表,但请注意*可能不会执行。如果列表B在列表A之后紧接提交,并且是*直接提交,将不会运行与列表A关联的回调。
用法:
listAdapter.submitList(*your_new_list*, new Runnable() {
@Override
public void run() {
// do your stuff
}
});