我有一个聊天应用程序,其中创建新聊天时,消息列表中没有消息。当用户进入聊天并发送第一条消息时。该应用程序崩溃时出现以下错误代码
Pageable
以下是我将适配器附加到recyclerview的代码。
@Query
请帮忙
答案 0 :(得分:0)
每次使用RecyclerView中提供的众多方法之一添加或删除列表中的内容时,您应该刷新列表:
https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter.html
final void notifyDataSetChanged() 通知任何注册观察员 数据集已经改变。
final void notifyItemChanged(int position,Object payload) 通知任何 已登记的观察员认为该位置的项目已改变 可选的有效负载对象。
final void notifyItemChanged(int position) 通知任何注册观察员该位置的项目已更改。
final void notifyItemInserted(int position) 通知任何注册观察员在位置上反映的项目是>新插入。
final void notifyItemMoved(int fromPosition,int toPosition) 通知任何注册观察员在fromPosition反映的项目 被转移到了位置。
final void notifyItemRangeChanged(int positionStart,int itemCount, 对象有效负载 通知任何注册观察者itemCount项目从位置开始> positionStart已经改变。
final void notifyItemRangeChanged(int positionStart,int itemCount) 通知任何注册观察员itemCount项目从 position positionStart已经改变。
final void notifyItemRangeInserted(int positionStart,int itemCount) 通知任何注册观察者当前反映的itemCount 已经新插入了从positionStart开始的项目。
final void notifyItemRangeRemoved(int positionStart,int itemCount) 通知任何注册观察员之前的itemCount项目 位于positionStart的位置已从数据集中删除。
final void notifyItemRemoved(int position) 通知任何注册观察者先前位于>位置的物品。已从数据集中删除。
在没有查看更多细节的情况下,我会说当您尝试滚动到最后一项时会出现问题。在滚动之前尝试刷新数据集,看看会发生什么:
Log.d(TAG, "Scrolling to pos "+ (messageCount - 1));
try {
notifyDataSetChanged();
conversationRecyclerView.scrollToPosition(mMessageAdapter.getItemCount() - 1);
} catch (Exception e){
Log.d(TAG, e.toString());
}
答案 1 :(得分:0)
将conversationRecyclerView.setItemAnimator(new DefaultItemAnimator());
替换为conversationRecyclerView.setItemAnimator(null);