Skip to content

[Android Experimental] [Android 15/16] text breaking last characters #56186

@atlj

Description

@atlj

Description

On Android 15 and Android 16, if you enable the Experimental mode, last letter of text sometimes breaks to next line if textAlign: "center", and lineHeight are set.

<View style={{ alignItems: 'center' }}>
  <Text style={styles.text}>1</Text>
  <Text style={styles.text}>12</Text>
  <Text style={styles.text}>123</Text>
  <Text style={styles.text}>1234</Text>
  <Text style={styles.text}>12345</Text>
  <Text style={styles.text}>123456</Text>
  <Text style={styles.text}>1234567</Text>
  <Text style={styles.text}>12345678</Text>
  <Text style={styles.text}>123456789</Text>
</View>

// ...

const styles = StyleSheet.create({
  text: {
    textAlign: 'center',
    lineHeight: 60,
    fontSize: 50,
    borderBottomColor: 'red',
    borderBottomWidth: 1,
  },
});

Steps to reproduce

  1. Render a <View> with alignItems: "center"
  2. Render a child text with textAlign: "center", and an arbitrary lineHeight
  3. Enable experimental mode
  4. Run on Android 15 or Android 16

React Native Version

0.84.1

Affected Platforms

Runtime - Android

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

info Fetching system and libraries information...
System:
  OS: macOS 15.7.4
  CPU: (12) arm64 Apple M4 Pro
  Memory: 114.08 MB / 48.00 GB
  Shell:
    version: 0.109.1
    path: /Users/burakguner/.cargo/bin/nu
Binaries:
  Node:
    version: 22.22.0
    path: /Users/burakguner/.nix-profile/bin/node
  Yarn:
    version: 1.22.22
    path: /Users/burakguner/.nix-profile/bin/yarn
  npm:
    version: 10.9.4
    path: /Users/burakguner/.nix-profile/bin/npm
  Watchman:
    version: 2026.01.19.00
    path: /Users/burakguner/.nix-profile/bin/watchman
Managers:
  CocoaPods:
    version: 1.16.2
    path: /Users/burakguner/.local/share/gem/ruby/3.3.0/bin/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:
      - "30"
      - "34"
      - "35"
      - "36"
    Build Tools:
      - 35.0.0
      - 36.0.0
      - 36.1.0
    System Images:
      - android-30 | ARM 64 v8a
      - android-34 | Google Play ARM 64 v8a
      - android-35 | Google APIs ARM 64 v8a
      - android-35 | Google Play ARM 64 v8a
      - android-36.1 | Google Play ARM 64 v8a
    Android NDK: Not Found
IDEs:
  Android Studio: 2025.3 AI-253.30387.90.2532.14935130
  Xcode:
    version: 26.2/17C52
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 21.0.8
    path: /Users/burakguner/.nix-profile/bin/javac
  Ruby:
    version: 3.4.8
    path: /Users/burakguner/.nix-profile/bin/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: Not found
  newArchEnabled: false

Stacktrace or Logs

<none>

MANDATORY Reproducer

https://github.com/atlj/reproducer-rn-last-letter-breaking

Screenshots and Videos

Android 14 Android 15 Android 16
Image Image Image

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions