Skip to content

Commit 7834883

Browse files
author
nyakokishi
committed
fix IllegalStateException which occurs when RecyclerView.setAdapter method repeatedly invoked
1 parent 62fda5b commit 7834883

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

easyrecyclerview/src/main/java/com/nyakokishi/easyrecyclerview/EasyRecyclerView.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ public class EasyRecyclerView extends RecyclerView {
3737
private boolean isLoading = false;
3838
private boolean hasMore = true;
3939

40+
private boolean isDataObserverRegistered = false;
41+
4042
private WrapAdapter mWrapAdapter;
4143

4244
private LoadingListener mLoadingListener;
@@ -100,7 +102,10 @@ public void setHasMore(boolean isEnable) {
100102
public void setAdapter(Adapter adapter) {
101103
mWrapAdapter = new WrapAdapter(adapter);
102104
super.setAdapter(mWrapAdapter);
103-
adapter.registerAdapterDataObserver(mDataObserver);
105+
if (!isDataObserverRegistered) {
106+
adapter.registerAdapterDataObserver(mDataObserver);
107+
isDataObserverRegistered = true;
108+
}
104109
mDataObserver.onChanged();
105110
}
106111

0 commit comments

Comments
 (0)