diff --git a/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledHeaderSubviewViewGroup.kt b/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledHeaderSubviewViewGroup.kt index a35238fbff..c3f4ce1c21 100644 --- a/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledHeaderSubviewViewGroup.kt +++ b/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledHeaderSubviewViewGroup.kt @@ -16,6 +16,8 @@ abstract class FabricEnabledHeaderSubviewViewGroup( private var lastWidth = 0f private var lastHeight = 0f + private var lastOffsetX = 0f + private var lastOffsetY = 0f fun setStateWrapper(wrapper: StateWrapper?) { mStateWrapper = wrapper @@ -45,13 +47,17 @@ abstract class FabricEnabledHeaderSubviewViewGroup( // Check incoming state values. If they're already the correct value, return early to prevent // infinite UpdateState/SetState loop. if (abs(lastWidth - realWidth) < DELTA && - abs(lastHeight - realHeight) < DELTA + abs(lastHeight - realHeight) < DELTA && + abs(lastOffsetX - offsetXDip) < DELTA && + abs(lastOffsetY - offsetYDip) < DELTA ) { return } lastWidth = realWidth lastHeight = realHeight + lastOffsetX = offsetXDip + lastOffsetY = offsetYDip val map: WritableMap = WritableNativeMap().apply { diff --git a/apps/src/tests/Test2675.tsx b/apps/src/tests/Test2675.tsx new file mode 100644 index 0000000000..9bb12ac4a1 --- /dev/null +++ b/apps/src/tests/Test2675.tsx @@ -0,0 +1,121 @@ +import { NavigationContainer } from '@react-navigation/native'; +import { NativeStackNavigationProp, createNativeStackNavigator } from '@react-navigation/native-stack'; +import React from 'react'; +import { Button, StyleSheet, Text, View } from 'react-native'; + +type RouteParams = { + Home: undefined; + DynamicHeader: undefined; +} + +type NavigationProps = { + navigation: NativeStackNavigationProp; +} + +const Stack = createNativeStackNavigator(); + +function HomeScreen({ navigation }: NavigationProps) { + return ( + + Home Screen +