Android RecyclerView:在项目上,插入上推而不是下推

Android RecyclerView : on item, insert push up instead of down

假设我有一个包含大量项目视图的 RecyclerView:[a, b, c, d, e, ...]。如果我想在 bc 之间插入一个新的 ItemView X,我更新我的底层集合并调用 notifyItemInserted(2)。我现在有 [a, b, X, c, d, e, ...].

我的问题是,当 X 出现时,它会将每个视图 推到 之后(将 e 推出屏幕),我需要它将每个视图 推到 之前(将 a 推出屏幕)。

有办法吗?

发生这种情况是因为 LinearLayoutManager 将列表的开头视为锚点位置。如果希望列表末尾为锚点位置,可以设置stackFromEnd = true;。在这种情况下,当列表第一次加载时,您会看到;

V W X Y Z // assuming alphabet is your list of items

这是对话应用等应用的常见情况。

如果你想在 stackFromEnd 设置为 true 时从头开始,那么你可以在适配器初始化时调用 scrollToPosition(0)