diff --git a/src/__tests__/StickyHeaders.test.tsx b/src/__tests__/StickyHeaders.test.tsx
index 3d5a3e5ab..57f07e6df 100644
--- a/src/__tests__/StickyHeaders.test.tsx
+++ b/src/__tests__/StickyHeaders.test.tsx
@@ -671,5 +671,36 @@ describe("StickyHeaders - Compute Function", () => {
}),
});
});
+
+ it("should not intercept touches on the full-width container (multi-column gutter)", () => {
+ const layouts = createStandardLayouts();
+
+ const manager = createMockRecyclerViewManager({
+ scrollOffset: 100,
+ layouts,
+ });
+
+ const result = render(
+
+ );
+
+ // The full-width absolute container must use box-none so the empty gutter
+ // region in multi-column layouts lets touches pass through to the content
+ // below while the header content itself stays interactive (issue #2249).
+ const animatedView = result.find(Animated.View);
+ expect(animatedView).toHaveReactProps({
+ pointerEvents: "box-none",
+ });
+ });
});
});
diff --git a/src/recyclerview/components/StickyHeaders.tsx b/src/recyclerview/components/StickyHeaders.tsx
index 75e3341b5..73f867f2a 100644
--- a/src/recyclerview/components/StickyHeaders.tsx
+++ b/src/recyclerview/components/StickyHeaders.tsx
@@ -199,6 +199,11 @@ export const StickyHeaders = ({
const headerContent = useMemo(() => {
return (