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}
/>
);
}