From 132c46817fa09455786ce55dddf3e29bae8b0667 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 1 Mar 2026 08:33:00 +0000 Subject: [PATCH] Fix Android sheets opening at ~10px height OnLayoutChangeListener only fires on future layout changes, but dialog.show() triggers the initial content layout synchronously before the listener is registered. The sheet was stuck at the tiny halfExpandedRatio computed from the pre-layout content height (0). After registering the listener, do an immediate updateLayout() if the content view already has a nonzero height, so we pick up the real dimensions. https://claude.ai/code/session_01Rp7ef1h3fKh6fhStcjqLJ5 --- .../main/java/expo/modules/bottomsheet/BottomSheetView.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/bottom-sheet/android/src/main/java/expo/modules/bottomsheet/BottomSheetView.kt b/modules/bottom-sheet/android/src/main/java/expo/modules/bottomsheet/BottomSheetView.kt index f0c4a768c4..196c6dd292 100644 --- a/modules/bottom-sheet/android/src/main/java/expo/modules/bottomsheet/BottomSheetView.kt +++ b/modules/bottom-sheet/android/src/main/java/expo/modules/bottomsheet/BottomSheetView.kt @@ -335,6 +335,12 @@ class BottomSheetView( contentView.addOnLayoutChangeListener(listener) this.contentLayoutListener = listener this.observedContentView = contentView + + // The listener only fires on future changes. If content already laid out + // (e.g. dialog.show() triggered layout synchronously), pick up that height now. + if (contentView.height > 0) { + updateLayout() + } } private fun stopObservingContentHeight() {