Skip to content

Commit 34ef3ae

Browse files
authored
fix(android): support multiple pager instances (#242)
1 parent 9b40c54 commit 34ef3ae

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

android/src/main/java/com/reactnativecommunity/viewpager/FragmentAdapter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import com.reactnative.community.viewpager2.adapter.FragmentStateAdapter;
1010

1111
import java.util.ArrayList;
12+
import java.util.Collections;
13+
import java.util.List;
1214

1315
public class FragmentAdapter extends FragmentStateAdapter {
1416

@@ -59,6 +61,10 @@ public void removeAll() {
5961
notifyDataSetChanged();
6062
}
6163

64+
public List<Integer> getChildrenViewIDs() {
65+
return Collections.unmodifiableList(childrenViewIDs);
66+
}
67+
6268
public int getChildViewIDAt(int index) {
6369
return childrenViewIDs.get(index);
6470
}

android/src/main/java/com/reactnativecommunity/viewpager/ReactViewPagerManager.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,9 @@ public void removeView(ViewPager2 parent, View view) {
127127

128128
public void removeAllViews(ViewPager2 parent) {
129129
FragmentAdapter adapter = ((FragmentAdapter) parent.getAdapter());
130-
reactChildrenViews.clear();
130+
for (int childID : adapter.getChildrenViewIDs()) {
131+
reactChildrenViews.remove(childID);
132+
}
131133
adapter.removeAll();
132134
parent.setAdapter(null);
133135
}

0 commit comments

Comments
 (0)