Android RecyclerView显示项目的最佳实践

Android RecyclerView显示项目的最佳实践,android,android-recyclerview,Android,Android Recyclerview,我有一个reyclerview,每次我添加一个项目时,我都会将其添加到索引0,通常当您将一个项目添加到给定的索引时,您可以这样做 mAdapter.add(0, item) mAdapter.notifyItemChanged(0) 问题是该项目将被添加到索引0中,但用户必须滚动查看它,当然,有一个解决方案,只需执行以下操作 messageAdapter.add(0, item) messageAdapter.notifyDataSetChanged() 这里的问题是,通过调用“notify

我有一个reyclerview,每次我添加一个项目时,我都会将其添加到索引0,通常当您将一个项目添加到给定的索引时,您可以这样做

mAdapter.add(0, item)
mAdapter.notifyItemChanged(0)
问题是该项目将被添加到索引0中,但用户必须滚动查看它,当然,有一个解决方案,只需执行以下操作

messageAdapter.add(0, item)
messageAdapter.notifyDataSetChanged()
这里的问题是,通过调用“notifyDataSetChanged()”该项将突然出现在列表中,我不喜欢它,我希望在添加该项时有一个漂亮平滑的动画,另一个解决方案是在使用我们的第一个代码添加项时手动平滑滚动recyclerView,这个解决方案是最好的,但也有一些问题

当用户在索引999处查看项目并添加新项目时,视图将滚动到索引0,这对用户来说可能有点烦人,解决此问题的方法很简单,我们可以检查索引0处的项目是否可见(如果可见),然后滚动到索引0,这是解决我问题的完美方法


所以我的问题是,有没有其他方法来实现我想要实现的功能,而不必做这些工作?我想知道最简单的方法是什么,提前谢谢

尝试使用diff-util更新recyclerview会提高性能

我忘了提到我正在使用groupie library,它可能为我完成了大部分工作。根据文档说明,“以任何方式修改GroupAdapter的内容都会自动发送更改通知。添加项调用notifyItemAdded();添加组调用notifyItemRangeAdded()因此,如果您使用了diff-util,您将确定可以调用什么函数。请检查如何使用diff-util,它将可以正常工作。我想您误解了我的问题,我的代码工作正常,它正在应用我想要实现的功能,问题是“最佳实践”我想知道是否有更好的方法来确定何时滚动视图,何时不滚动视图。。。我的问题不是适配器,以及如何添加项目。。。