Skip to content

[Regression] android_ripple doesn't work anymore on RN 0.82.1 #54372

@freeboub

Description

@freeboub

Description

android_ripple is not applied anymore on RN 0.82.1

This is reproduced only when foreground: false, (the default value)

Additional informations:

  • This is not reproduced if I switch to Pressable from 'react-native-gesture-handler' (but out of react native scope)
  • It shall be the same issue than: Pressable backgroundColor does not change on Android #54298 , I open a dedicated issue as 54298 is not clean enough for followup.
  • This issue can be workarounded by disabling enableNewBackgroundAndBorderDrawables flag (see following patch)
@@ -8,13 +8,21 @@ import com.facebook.react.ReactApplication
 import com.facebook.react.ReactHost
 import com.facebook.react.ReactNativeApplicationEntryPoint.loadReactNative
 import com.facebook.react.ReactNativeHost
 import com.facebook.react.ReactPackage
 import com.facebook.react.defaults.DefaultReactNativeHost
+import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
+import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsProvider
+import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatureFlagsDefaults
 import expo.modules.ApplicationLifecycleDispatcher
 import expo.modules.ReactNativeHostWrapper
 
+class FeatureFlagsProvider(
+  private val defaults: ReactNativeFeatureFlagsProvider = ReactNativeNewArchitectureFeatureFlagsDefaults()
+) : ReactNativeFeatureFlagsProvider by defaults {
+  override fun enableNewBackgroundAndBorderDrawables(): Boolean = false;
+}
 
 class MainApplication : Application(), ReactApplication {
 
   companion object {
     private var instance: MainApplication? = null
@@ -28,11 +36,11 @@ class MainApplication : Application(), ReactApplication {
 
   override fun onCreate() {
     super.onCreate()
     instance = this
     loadReactNative(this)
-
+    ReactNativeFeatureFlags.dangerouslyForceOverride(FeatureFlagsProvider())
     ApplicationLifecycleDispatcher.onApplicationCreate(this)
   }
 
   override val reactNativeHost: ReactNativeHost =
     ReactNativeHostWrapper(this, object : DefaultReactNativeHost(this) {

Steps to reproduce

Add a simple pressable in your android app with android_ripple

      <Pressable
        android_ripple={{ color: 'red', borderless: false }}
        onPress={() => { console.log('Pressed!'); }}
      >
        <Text>Press Me</Text>
      </Pressable>

And click on it !

React Native Version

0.82.1

Affected Platforms

Runtime - Android

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

info Fetching system and libraries information...
System:
  OS: macOS 26.0.1
  CPU: (11) arm64 Apple M3 Pro
  Memory: 105.66 MB / 18.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 20.18.1
    path: /Users/olivierbouillet/.nvm/versions/node/v20.18.1/bin/node
  Yarn:
    version: 4.5.3
    path: /opt/homebrew/bin/yarn
  npm:
    version: 10.8.2
    path: /Users/olivierbouillet/.nvm/versions/node/v20.18.1/bin/npm
  Watchman:
    version: 2025.06.30.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.16.2
    path: /opt/homebrew/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 25.0
      - iOS 26.0
      - macOS 26.0
      - tvOS 26.0
      - visionOS 26.0
      - watchOS 26.0
  Android SDK:
    API Levels:
      - "28"
      - "31"
      - "33"
      - "34"
      - "35"
      - "36"
    Build Tools:
      - 26.0.3
      - 30.0.2
      - 30.0.3
      - 31.0.0
      - 33.0.0
      - 33.0.1
      - 34.0.0
      - 35.0.0
      - 36.0.0
    System Images:
      - android-30 | Google APIs ARM 64 v8a
      - android-30 | Google Play ARM 64 v8a
      - android-34 | Google APIs ARM 64 v8a
      - android-35 | Google Play ARM 64 v8a
      - android-36 | Google APIs ARM 64 v8a
      - android-36 | Google Play ARM 64 v8a
    Android NDK: 26.1.10909125
IDEs:
  Android Studio: 2025.1 AI-251.25410.109.2511.13665796
  Xcode:
    version: 26.0.1/17A400
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.12
    path: /usr/bin/javac
  Ruby:
    version: 2.6.10
    path: /usr/bin/ruby
npmPackages:
  "@react-native-community/cli":
    installed: 20.0.0
    wanted: 20.0.0
  react:
    installed: 19.1.1
    wanted: 19.1.1
  react-native:
    installed: 0.82.1
    wanted: 0.82.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

N/A

MANDATORY Reproducer

https://github.com/freeboub/bug-react-native-android-ripple-not-applied

Screenshots and Videos

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    Impact: RegressionDescribes a behavior that used to work on a prior release, but stopped working recently.Needs: Triage 🔍Platform: AndroidAndroid applications.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions