fixes after rebase

This commit is contained in:
Oleksii Bulenok
2026-07-30 13:39:06 +02:00
parent 6d1cb5ffd9
commit b4563b6b26
5 changed files with 33 additions and 31 deletions
+33
View File
@@ -0,0 +1,33 @@
diff --git a/android/src/main/java/com/swmansion/rnscreens/Screen.kt b/android/src/main/java/com/swmansion/rnscreens/Screen.kt
index 76bb694854b29d7f779f38244cd48113b429ea1f..fd402ac938862e8d39c5467c1b5c86c4e7eb0c83 100644
--- a/android/src/main/java/com/swmansion/rnscreens/Screen.kt
+++ b/android/src/main/java/com/swmansion/rnscreens/Screen.kt
@@ -16,6 +16,7 @@ import androidx.annotation.RequiresApi
import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.view.children
import androidx.fragment.app.Fragment
+import androidx.recyclerview.widget.RecyclerView
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import com.facebook.react.bridge.ReactContext
import com.facebook.react.uimanager.PixelUtil
@@ -462,7 +463,7 @@ class Screen(
endTransitionRecursive(childView.toolbar)
}
- if (childView is ViewGroup) {
+ if (childView is ViewGroup && childView !is RecyclerView) {
endTransitionRecursive(childView)
}
}
@@ -491,7 +492,10 @@ class Screen(
startTransitionRecursive(child.toolbar)
}
- if (child is ViewGroup) {
+ // Transition a RecyclerView as one unit. Marking its recyclable children as
+ // transitioning keeps their parent set after removal, so RecyclerView crashes
+ // when it tries to recycle them during the screen transition.
+ if (child is ViewGroup && child !is RecyclerView) {
startTransitionRecursive(child)
}
}