diff --git a/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHost.kt b/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHost.kt index 74afd09c03..9eddd1bd63 100644 --- a/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHost.kt +++ b/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHost.kt @@ -324,8 +324,10 @@ class TabsHost( appearanceCoordinator.updateTabAppearance(this) - bottomNavigationView.selectedItemId = - checkNotNull(getSelectedTabScreenFragmentId()) { "[RNScreens] A single selected tab must be present" } + val selectedItemId = checkNotNull(getSelectedTabScreenFragmentId()) { "[RNScreens] A single selected tab must be present" } + if (selectedItemId != bottomNavigationView.selectedItemId) { + bottomNavigationView.selectedItemId = selectedItemId + } post { refreshLayout() diff --git a/apps/src/tests/Test3384.tsx b/apps/src/tests/Test3384.tsx new file mode 100644 index 0000000000..54c5b9d257 --- /dev/null +++ b/apps/src/tests/Test3384.tsx @@ -0,0 +1,61 @@ +import { NavigationContainer, useNavigation } from '@react-navigation/native'; +import React from 'react' +import { BottomTabsContainer } from '../shared/gamma/containers/bottom-tabs/BottomTabsContainer'; +import { createNativeStackNavigator } from '@react-navigation/native-stack'; +import { Alert, Button, Text, View } from 'react-native'; + +function ModalScreen() { + return Modal +} + +function Tab1() { + const navigation = useNavigation() + + return + Tab 1 +