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
+
+}
+
+function Tab2() {
+ return
+ Tab 2
+
+}
+
+function BottomTabs() {
+ return Alert.alert("Native focus change called")}
+ tabConfigs={[{
+ component: Tab1,
+ tabScreenProps: { tabKey: 'tab1', title: 'Tab 1' }
+ }, {
+ component: Tab2,
+ tabScreenProps: { tabKey: 'tab2', title: 'Tab 2' }
+ }]}
+ />
+}
+
+const Stack = createNativeStackNavigator();
+
+function App() {
+
+ return (
+
+
+
+
+
+
+ );
+}
+
+export default App;
\ No newline at end of file
diff --git a/apps/src/tests/index.ts b/apps/src/tests/index.ts
index 7835cca369..c103e895ad 100644
--- a/apps/src/tests/index.ts
+++ b/apps/src/tests/index.ts
@@ -160,6 +160,7 @@ export { default as Test3342 } from './Test3342';
export { default as Test3346 } from './Test3346';
export { default as Test3369 } from './Test3369';
export { default as Test3379 } from './Test3379';
+export { default as Test3384 } from './Test3384';
export { default as TestScreenAnimation } from './TestScreenAnimation';
export { default as TestScreenAnimationV5 } from './TestScreenAnimationV5';
export { default as TestHeader } from './TestHeader';