Environment
- react-native-pager-view: 9.0.2 (last working version: 8.0.5)
- @react-navigation/material-top-tabs: 7.6.15 (react-native-tab-view 4.3.2)
- react-native: 0.86.2
- react: 19.2.3
- Platform: Android
- New architecture: enabled
Description
A screen using createMaterialTopTabNavigator (even with a single tab, so a single-page PagerView) goes blank after the user navigates to another screen pushed on top via a Stack.Navigator, then navigates back. The tab bar and navigation state are still correct, but the page content is empty — no swipe/resize recovers it.
Bisected on our end: reverting only react-native-pager-view from 9.0.2 to 8.0.5 (no other change) fixes it, so this is a regression introduced in 9.0.0. That release replaced the Android implementation from ViewPager2/RecyclerView with a Jetpack Compose HorizontalPager (ComposePagerView, #1092). Suspicion: the Compose-hosted page doesn't get a fresh re-composition/re-layout when the surrounding Fragment/Activity view is covered by another screen and then revealed again.
Reproducible Demo
- Screen A is a createMaterialTopTabNavigator with a single tab rendering some content (a PagerView under the hood, even with just 1 page).
- From that tab's content, navigate forward to a screen pushed on a Stack.Navigator on top of it.
- Navigate back (pop the stack screen) to Screen A.
- The tab's content area is blank — the PagerView page no longer renders anything, even though the tab bar/navigation state is correct. No user interaction (swipe/resize) recovers it.
Environment
Description
A screen using createMaterialTopTabNavigator (even with a single tab, so a single-page PagerView) goes blank after the user navigates to another screen pushed on top via a Stack.Navigator, then navigates back. The tab bar and navigation state are still correct, but the page content is empty — no swipe/resize recovers it.
Bisected on our end: reverting only react-native-pager-view from 9.0.2 to 8.0.5 (no other change) fixes it, so this is a regression introduced in 9.0.0. That release replaced the Android implementation from ViewPager2/RecyclerView with a Jetpack Compose HorizontalPager (ComposePagerView, #1092). Suspicion: the Compose-hosted page doesn't get a fresh re-composition/re-layout when the surrounding Fragment/Activity view is covered by another screen and then revealed again.
Reproducible Demo