将新项目添加到RecyclerView的顶部

时间:2016-08-09 12:20:48

标签: android scroll android-recyclerview add

我正在将物品添加到recyclerview position 0 programamticly

public void addQuestion(Question question){
    this.questionList.add(0, question);
    notifyItemInserted(0);
}

效果非常好,项目确实出现在顶部的列表中,但用户必须向上滚动才能看到新项目。

是否有任何技巧如何项目出现在顶部并且recyclerview自动向上滚动?

4 个答案:

答案 0 :(得分:17)

你可以使用mRecyclerView.smoothScrollToPosition(int position)

示例:

public void addQuestion(Question question){
    this.questionList.add(0, question);
    notifyItemInserted(0);
    mRecyclerView.smoothScrollToPosition(0);
}

<强>更新

如果你想让滚动到某个项目非常流畅,你可以看一下这个问题的答案

RecyclerView - How to smooth scroll to top of item on a certain position?

答案 1 :(得分:3)

是的,你可以这样做

mRecyclerView.smoothScrollToPosition(0);

答案 2 :(得分:3)

试试这个

mRecyclerView.smoothScrollToPosition(0);

答案 3 :(得分:2)

如果我理解正确而您的问题是您已经滚动到列表顶部,但在插入时您必须再次滚动查看项目,您可以尝试我的方法来避免它。

根据我的经验,插入后滚动的方法有效,但动画看起来并不自然。

如果您真的想保存动画,可以尝试一种方法,帮助我完成项目:使用多类型回收器。在适配器的0位置显示第二种类型的附加项目。这个项目可以只是一个带有小填充,标题(如果需要)甚至是空视图的视图。然后,notifyItemInserted(1),你会得到很好的插入动画。

注意:这种方法可能会增加项目的复杂性,并需要了解有关多类型回收站视图的知识。