我正在尝试使用RecyclerView创建一种类似于消息的屏幕,该屏幕从底部开始,并在用户到达聊天的顶部端时加载更多数据。但是我遇到了这个奇怪的问题。
在调用notifyDataSetChanged时,我的RecyclerView会滚动到顶部。由于这个原因,onLoadMore会被多次调用。
以下是我的代码:
LinearLayoutManager llm = new LinearLayoutManager(context);
llm.setOrientation(LinearLayoutManager.VERTICAL);
llm.setStackFromEnd(true);
recyclerView.setLayoutManager(llm);
** 在适配器中
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (messages.size() > 8 && position == 0 && null != mLoadMoreCallbacks) {
mLoadMoreCallbacks.onLoadMore();
}
** 在活动中
@Override
public void onLoadMore() {
// Get data from database and add into arrayList
chatMessagesAdapter.notifyDataSetChanged();
}
只是recyclerView滚动到了顶部。如果滚动到顶部停止,这个问题就会解决。请帮我找出问题的原因。提前致谢。