Skip to content

First tap is ignored after blurring a non-left aligned TextInput on Android #603

@Menardi

Description

@Menardi

Before submitting a new issue

  • I tested using the latest version of the library.
  • I tested using a supported version of React Native.
  • I checked for existing issues that might answer my question.

Bug Summary

On Android, when there is a TextInput which has textAlign: 'center' or textAlign: 'right' set in a TrueSheet, when the TextInput is blurred by pressing the Enter key on the soft keyboard, the first touch afterwards is ignored. This does not happen if the keyboard is closed by tapping away from the keyboard, or if the text is left-aligned.

Affected Platforms

  • iOS
  • Android
  • Web
  • Other

Library Version

3.9.9

Environment Info

System:
  OS: macOS 26.3
  CPU: (10) arm64 Apple M1 Pro
  Memory: 373.03 MB / 32.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 22.19.0
    path: /Users/menardi/.nvm/versions/node/v22.19.0/bin/node
  Yarn:
    version: 1.22.22
    path: /Users/menardi/.nvm/versions/node/v22.19.0/bin/yarn
  npm:
    version: 10.9.3
    path: /Users/menardi/.nvm/versions/node/v22.19.0/bin/npm
  Watchman: Not Found
Managers:
  CocoaPods:
    version: 1.16.2
    path: /Users/menardi/.rbenv/shims/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 25.2
      - iOS 26.2
      - macOS 26.2
      - tvOS 26.2
      - visionOS 26.2
      - watchOS 26.2
  Android SDK:
    API Levels:
      - "33"
      - "35"
      - "36"
    Build Tools:
      - 30.0.2
      - 30.0.3
      - 31.0.0
      - 33.0.0
      - 33.0.1
      - 34.0.0
      - 35.0.0
      - 36.0.0
      - 36.0.0
    System Images:
      - android-29 | ARM 64 v8a
      - android-36 | Google Play ARM 64 v8a
    Android NDK: Not Found
IDEs:
  Android Studio: 2025.2 AI-252.28238.7.2523.14688667
  Xcode:
    version: 26.2/17C52
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 21.0.8
    path: /usr/bin/javac
  Ruby:
    version: 2.7.6
    path: /Users/menardi/.rbenv/shims/ruby
npmPackages:
  "@react-native-community/cli":
    installed: 20.1.0
    wanted: 20.1.0
  react:
    installed: 19.2.3
    wanted: 19.2.3
  react-native:
    installed: 0.84.1
    wanted: 0.84.1
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: true
iOS:
  hermesEnabled: true
  newArchEnabled: true

Steps to Reproduce

Using the reproduction code below:

  1. Tap "Open Sheet"
  2. Tap the TextInput in the sheet to focus it
  3. Tap the Enter (or Done) key on the soft keyboard
  4. Tap Close Sheet - nothing happens
  5. Tap Close Sheet again - the sheet closes

Then repeat these steps with textAlign: 'center' removed. Note that the sheet closes on first tap.

For comparison, on the main screen, the first tap is not ignored even with textAlign set to center, which suggests it is a TrueSheet-specific issue.

  1. Tap the TextInput on the main screen to focus it
  2. Tap the Enter key on the soft keyboard
  3. Tap Open Sheet - the sheet opens

Repro

https://snack.expo.dev/@bad.dime/adequate-blue-pastry

Additional Context

I have reproduced this issue on a Pixel 9a and Samsung A35, both running Android 16. It has also been reported by a user running Android 14.

I created an Expo snack for reference, although I'm not sure if it'll run since Expo Go doesn't have the required dependencies. For reference, this is the minimal code I could get to reproduce this issue:

import { TrueSheet } from '@lodev09/react-native-true-sheet';
import { useRef } from 'react';
import { Button, TextInput } from 'react-native';
import { SafeAreaProvider, SafeAreaView } from 'react-native-safe-area-context';

function CenteredTextInput() {
  return (
    <TextInput
      value="Test"
      style={{
        textAlign: 'center',
        padding: 8,
        fontSize: 24,
        backgroundColor: 'lightsteelblue',
        marginVertical: 24,
        marginHorizontal: 8,
      }}
    />
  )
}

function App() {
  const ref = useRef<TrueSheet>(null);

  return (
    <SafeAreaProvider>
      <SafeAreaView>
        <CenteredTextInput />
        <Button title="Open Sheet" onPress={() => ref.current?.present()} />
      </SafeAreaView>

    <TrueSheet ref={ref}>
      <CenteredTextInput />
      <Button title="Close Sheet" onPress={() => ref.current?.dismiss()} />
    </TrueSheet>
    </SafeAreaProvider>
  );
}

export default App;

If there's anything else I can do to help track down the cause, let me know.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingrepro providedGood! Repro is provided

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions