Skip to content

Form Sheet does not react to updated sheetAllowedDetents values (Android only) #3919

@SimpleCreations

Description

@SimpleCreations

Description

On Android, when using setOptions to change sheetAllowedDetents, the sheet does not snap to new positions automatically, unlike how it does on iOS.

In my actual use case, the first detent is dynamically calculated based on layout metrics of parts of the content inside the sheet, and there doesn't seem to be a way to make it update the current position on Android.

Android iOS
untitled.webm
Simulator.Screen.Recording.-.iPhone.11.Pro.-.2026-04-21.at.18.40.03.mov

Steps to reproduce

import { Button, View } from 'react-native';
import { SafeAreaProvider } from 'react-native-safe-area-context';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';

const Stack = createNativeStackNavigator();

const HomeScreen = ({ navigation }) => (
  <Button
    title="Open form sheet"
    onPress={() => navigation.navigate('Sheet')}
  />
);

const SheetScreen = ({ navigation }) => (
  <View style={{ padding: 24 }}>
    <Button
      title="Change detent"
      onPress={() => {
        navigation.setOptions({ sheetAllowedDetents: [Math.random() * 0.75 + 0.25] });
      }}
    />
  </View>
);

const App = () => (
  <SafeAreaProvider>
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen name="Home" component={HomeScreen} />
        <Stack.Screen
          name="Sheet"
          component={SheetScreen}
          options={{ presentation: 'formSheet', sheetAllowedDetents: [0.5] }}
        />
      </Stack.Navigator>
    </NavigationContainer>
  </SafeAreaProvider>
);

export default App;

Snack or a link to a repository

https://github.com/SimpleCreations/SEE_REPRO_ABOVE_sorry_bot

Screens version

4.24.0

React Native version

0.85.2

Platforms

Android

JavaScript runtime

Hermes

Workflow

React Native (without Expo)

Architecture

Fabric (New Architecture)

Build type

Debug mode

Device

Android emulator

Device model

No response

Acknowledgements

Yes

Metadata

Metadata

Assignees

No one assigned

    Labels

    platform:androidIssue related to Android part of the libraryrepro-providedA reproduction with a snack or repo is provided

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions