将新项目添加到 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);
}
更新:
如果你想让滚动到某个项目真的很顺畅,你可以看看这个问题的答案
是的,你可以这样做
mRecyclerView.smoothScrollToPosition(0);
试试这个
mRecyclerView.smoothScrollToPosition(0);
如果我没理解错,你的问题是你已经滚动到列表顶部,但在插入时你必须再次滚动才能看到项目,你可以尝试我的方法来避免它。
根据我的经验,插入后滚动的方法可行,但动画看起来不自然。
如果你真的想保存动画,你可以尝试一种对我的项目有帮助的方法:使用 multi-typed 回收器。在您的适配器中的 0 位置显示第二类型的附加项目。这个项目可以只是一个带有小填充的视图,header(如果你需要的话)或者甚至是一个空视图。然后,notifyItemInserted(1) 你会得到漂亮的插入动画。
注意: 这种方法可能会增加您的项目的复杂性,并且需要有关 multi-type 回收器视图的知识。
我正在以编程方式将项目添加到 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);
}
更新:
如果你想让滚动到某个项目真的很顺畅,你可以看看这个问题的答案
是的,你可以这样做
mRecyclerView.smoothScrollToPosition(0);
试试这个
mRecyclerView.smoothScrollToPosition(0);
如果我没理解错,你的问题是你已经滚动到列表顶部,但在插入时你必须再次滚动才能看到项目,你可以尝试我的方法来避免它。
根据我的经验,插入后滚动的方法可行,但动画看起来不自然。
如果你真的想保存动画,你可以尝试一种对我的项目有帮助的方法:使用 multi-typed 回收器。在您的适配器中的 0 位置显示第二类型的附加项目。这个项目可以只是一个带有小填充的视图,header(如果你需要的话)或者甚至是一个空视图。然后,notifyItemInserted(1) 你会得到漂亮的插入动画。
注意: 这种方法可能会增加您的项目的复杂性,并且需要有关 multi-type 回收器视图的知识。