Skip to content

Commit e6f63c2

Browse files
authored
fix(android) Fix crash with navigation on fabric by proper removal of view (#913)
1 parent 5ca9aec commit e6f63c2

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

android/src/main/java/com/reactnativepagerview/PagerViewViewManagerImpl.kt

+12-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.reactnativepagerview
22

33
import android.view.View
4+
import android.view.ViewGroup
45
import androidx.viewpager2.widget.ViewPager2
56
import com.facebook.react.uimanager.PixelUtil
67

@@ -69,12 +70,19 @@ object PagerViewViewManagerImpl {
6970
fun removeViewAt(parent: NestedScrollableHost, index: Int) {
7071
val pager = getViewPager(parent)
7172
val adapter = pager.adapter as ViewPagerAdapter?
73+
74+
val child = adapter?.getChildAt(index)
75+
76+
if (child != null && child.parent != null) {
77+
(child.parent as? ViewGroup)?.removeView(child)
78+
}
79+
7280
adapter?.removeChildAt(index)
7381

74-
// Required so ViewPager actually animates the removed view right away (otherwise
75-
// a white screen is shown until the next user interaction).
76-
// https://github.com/facebook/react-native/issues/17968#issuecomment-697136929
77-
refreshViewChildrenLayout(pager)
82+
pager.post {
83+
pager.invalidate()
84+
pager.requestLayout()
85+
}
7886
}
7987

8088
fun needsCustomLayoutForChildren(): Boolean {

0 commit comments

Comments
 (0)