From b53ce4af868a8ea8637775a285a830ab5f4b484b Mon Sep 17 00:00:00 2001 From: MrRefactor Date: Wed, 15 Apr 2026 17:55:11 +0200 Subject: [PATCH] fix(ios): emit onPageScroll for setPageWithoutAnimation to sync consumers --- example/src/MaterialTopTabExample.tsx | 18 ++++++++++++++++++ ios/PagerViewProvider.swift | 3 +++ 2 files changed, 21 insertions(+) diff --git a/example/src/MaterialTopTabExample.tsx b/example/src/MaterialTopTabExample.tsx index e606a93b..af88449d 100644 --- a/example/src/MaterialTopTabExample.tsx +++ b/example/src/MaterialTopTabExample.tsx @@ -28,6 +28,22 @@ const PreAuthScreen = (props: any) => { ); }; +function Tab3() { + return ( + + Tab 3 + + ); +} + +function Tab4() { + return ( + + Tab 4 + + ); +} + const PostAuthScreen = (props: any) => { const { Navigator, Screen } = createMaterialTopTabNavigator(); const onLogout = () => { @@ -43,6 +59,8 @@ const PostAuthScreen = (props: any) => { {(props: any) => } + + ); diff --git a/ios/PagerViewProvider.swift b/ios/PagerViewProvider.swift index 54fb5177..b01e7ba2 100644 --- a/ios/PagerViewProvider.swift +++ b/ios/PagerViewProvider.swift @@ -98,6 +98,9 @@ import UIKit } } else { props.currentPage = index + // For non-animated navigation, no scroll events fire, so emit the + // final onPageScroll explicitly to keep consumers in sync. + delegate?.onPageScroll(data: OnPageScrollEventData(position: Double(index), offset: 0)) } }