Skip to content

[Android] Change Bundle Location dialog clips action buttons on landscape displays #59384

Open

Description

@dyw934854565

Description

On Android devices with a short effective window height (for example, a landscape display with a high density), the Dev Menu's Change Bundle Location dialog renders its action buttons below the visible window.

The dialog content is built as a vertical LinearLayout and passed directly to AlertDialog.Builder.setView(). Because the content is not scrollable, users cannot reach Apply Changes or Cancel when the combined title, input, suggestions, instructions, and buttons exceed the available height.

The implementation in React Native 0.88.0 still has this structure:
https://github.com/react/react-native/blob/v0.88.0/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/ChangeBundleLocationDialog.kt

Expected behavior: all actions remain reachable; overflowing content scrolls or otherwise adapts to the available height.

Actual behavior: Apply Changes is reduced to a 19 px-high clipped region with no visible label, Cancel is completely absent, and vertical swipes do not reveal either action.

Steps to reproduce

  1. Create and run an unmodified React Native 0.88.0 application in the Android Debug build.
  2. Use an Android device in landscape with a 1920 x 1080 physical display and 408 dpi density. The reproduced window had an effective application area of 1920 x 958 and approximately 351 dp of available height after system insets.
  3. Open the React Native Dev Menu.
  4. Select Change Bundle Location.
  5. Observe that the instructions consume the remaining vertical space. Apply Changes has only a clipped 19 px-high region with no visible label, and Cancel is completely outside the visible window.
  6. Swipe up inside the dialog. The hierarchy reports every container as scrollable=false; repeated swipes leave the hierarchy unchanged, so the actions remain unreachable.

React Native Version

0.88.0

Affected Platforms

Runtime - Android, Build - MacOS

Output of npx @react-native-community/cli info

System:
  OS: macOS 26.3
  CPU: (10) arm64 Apple M5
Binaries:
  Node: 24.18.0
  Yarn: 1.22.22
  npm: 11.16.0
  Watchman: 2026.07.13.00
Managers:
  CocoaPods: 1.17.0
IDEs:
  Android Studio: 2026.1 AI-261.25134.95.2612.15822958
  Xcode: 26.6/17F113
Languages:
  Java: 17.0.19
  Ruby: 2.7.8
npmPackages:
  @react-native-community/cli: 20.2.0
  react: 19.3.0
  react-native: 0.88.0
Android:
  hermesEnabled: true
  newArchEnabled: true

Paths and unrelated SDK inventory were omitted; versions are unchanged from the CLI result.

Stacktrace or Logs

No crash or stack trace is produced. This is a layout/accessibility failure in the Android DevSupport dialog.

Device configuration:
Android 11 (API 30)
Physical display: 1920 x 1080
Density: 408 dpi
Orientation: landscape
Application area: 1920 x 958
Effective configuration: approximately 752 dp x 351 dp

UIAutomator reports every container as scrollable=false. Two consecutive upward swipes produced byte-for-byte identical hierarchy XML.

MANDATORY Reproducer

https://github.com/react-native-community/reproducer-react-native

Screenshots and Videos

Reproduced in an unmodified stock React Native 0.88.0 application. The attached screenshot was captured with the dev server fixed to localhost so it contains no private network address.

Image

Activity

  1. react-native-bot commented on Oct 23, 2026

    @react-native-bot
    Collaborator

    Warning

    Missing reproducer: We could not detect a reproducible example in your issue report. Reproducers are mandatory and we can accept only one of those as a valid reproducer:


    You can read more about about it on our website: How to report a bug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions