繁体   English   中英

将新项目添加到RecyclerView的顶部

[英]Adding new item to the top of the RecyclerView

我正在以编程方式向recyclerview位置0添加一个项目

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

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

是否有任何技巧如何项目出现在顶部,Recyclerview自动滚动?

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

例:

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

更新:

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

RecyclerView - 如何在某个位置平滑滚动到项目顶部?

是的,你可以这样做

mRecyclerView.smoothScrollToPosition(0);

试试这个

mRecyclerView.smoothScrollToPosition(0);

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM