假设我有一个包含大量项目视图的RecyclerView:[a, b, c, d, e, ...]
。如果我想在X
和b
之间插入新的ItemView c
,我会更新我的基础集合并调用notifyItemInserted(2)
。我现在有[a, b, X, c, d, e, ...]
。
我的问题是,当出现X
时,它会在自身向下推送每个视图(将e
推出屏幕外),我需要它来推送每个视图< em>在之前启动(将a
推出屏幕)。
有办法吗?
答案 0 :(得分:0)
这种情况正在发生,因为LinearLayoutManager将列表的开头视为锚点位置。如果您希望列表的末尾成为锚点位置,则可以设置stackFromEnd = true;
。在这种情况下,当列表第一次加载时,您将看到;
V W X Y Z // assuming alphabet is your list of items
这是对话应用等常见情况。
如果您希望在stackFromEnd
设置为true
时从头开始,则可以在初始化适配器时调用scrollToPosition(0)
。