Android androidx.recyclerview.widget.ListAdapter如何知道所有更改何时完成?

时间:2019-02-10 19:09:53

标签: android android-recyclerview

我的适配器扩展了androidx.recyclerview.widget.ListAdapter类(不是 android.widget.ListAdapter接口)。效果很好,但是,当我提交包含新项目的列表时,我需要使RecyclerView滚动到特定项目,就像这样:

adapter.submitList(entries);
int position = getPosition(entries.get(0));
if (position != NO_POSITION) {
    mListView.smoothScrollToPosition(position);
}

这是我获得职位的方法:

    public int getPosition(@Nullable Entry entry) {
        for (int pos = 0; pos < getItemCount(); pos++) {
            if (getItem(pos).equals(entry)) {
                return pos;
            }
        }
        return RecyclerView.NO_POSITION;
    }

我的问题是,在getPosition()之后直接调用submitList()时总是返回NO_POSITION,因为ListAdapter(使用AsyncListDiffer来优化要进行的更改量)不是当我完成getPosition()时,操作完成,因此它返回NO_POSITION。

我的问题是,是否有办法提供回调或类似方法,以了解对列表的所有更改何时完成,因此我可以进行getPosition()并稍后滚动。

0 个答案:

没有答案