假设我有一个包含很多项目视图的回收器视图:[a, b, c, d, e, ...]
.如果要在b
和c
之间插入新的 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)
。