【发布时间】:2018-11-11 12:24:58
【问题描述】:
我的 RecyclerView 和 ListAdapter 有问题。
通过 API,我按从旧到新的升序接收项目。
然后通过调用 submitList(items) 方法刷新我的列表。
但是,由于一切都是异步的,所以在接收到第一个项目后,RecyclerView 会一直停留在接收到的第一个项目的位置并显示出来。 由于在 ListAdapter 类中,当 submitList() 方法完成时没有回调,所以我找不到在更新到已添加的新项目之一后滚动的方法。
有没有办法在 ListAdapter 更新时进行拦截?
【问题讨论】:
-
添加代码。你应该为 RecyclerView 使用 ListAdapter 吗?不是用于 ListViews 的 ListAdapters 吗?也许使用recyclerview适配器? developer.android.com/reference/android/support/v7/widget/…这个东西肯定有 notifyDataSetChanged() ,注册一个 AdapterDataObserver 并调用函数滚动到最后。
-
您好,我说的是新的 RecyclerView.ListAdapter,而不是旧的 ListView。无论如何,解决方案确实是使用 AdapterDataObserver!非常感谢。如果您将其发布为答案,我可以接受。
-
嘿,我认为我的评论不够雄辩或不足以成为一个答案,如果你不介意,添加一些你的固定代码,一些解释什么有效并发布它作为答案:) @gbaccetta
-
你解决了这个问题吗?我也有同样的问题。
-
@gbaccetta 您需要覆盖哪些回调?
标签: android android-recyclerview listadapter