diff --git a/android/src/main/java/com/swmansion/rnscreens/ext/ViewExt.kt b/android/src/main/java/com/swmansion/rnscreens/ext/ViewExt.kt index e9b8eeb04..f48561da1 100644 --- a/android/src/main/java/com/swmansion/rnscreens/ext/ViewExt.kt +++ b/android/src/main/java/com/swmansion/rnscreens/ext/ViewExt.kt @@ -40,10 +40,17 @@ internal fun View.isInsideScrollViewWithRemoveClippedSubviews(): Boolean { } var parentView = this.parent while (parentView is ViewGroup && parentView !is ScreenStack) { - if (parentView is ReactScrollView) { - return parentView.removeClippedSubviews + when (parentView) { + is ReactHorizontalScrollView -> { + return parentView.removeClippedSubviews + } + is ReactScrollView -> { + return parentView.removeClippedSubviews + } + else -> { + parentView = parentView.parent + } } - parentView = parentView.parent } return false } diff --git a/apps/src/tests/Test2282.tsx b/apps/src/tests/Test2282.tsx index 14196e4b0..ab5799fa2 100644 --- a/apps/src/tests/Test2282.tsx +++ b/apps/src/tests/Test2282.tsx @@ -33,22 +33,32 @@ function Home({ navigation }: any) { } function ListScreen() { + return ( + <> + + + + ); +} + +function ParentFlatlist(props: Partial>) { return ( { - if (index === 15) { + if (index === 10) { return ; - } else if (index === 18) { + } else if (index === 15) { return ; - } else if (index === 26) { + } else if (index === 20) { return ; - } else if (index === 28) { + } else if (index === 25) { return ; } else { return List item {index + 1}; } }} + {...props} /> ); }