[0.81] Android 16 changes impacting React Native #921
alanleedev
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
edgeToEdgeEnabled
, to enable edge-to-edge on all supported Android devices.<SafeAreaView>
.onBackPressed()
is no longer called when targeting Android 16. BackHandler should continue to work, but if you have custom native code for back handling, you may need to migrate it manually. Test your app’s back button handling thoroughly.Android 16 was released in June 2025 and brings important behavior changes when targeting Android 16 (
targetSdk 36
). Our community template has been updated to usetargetSdk 36
with the React Native 0.81 release. These changes apply if you create a new Android app using the community template or upgrade your existing app to usetargetSdk 36
. Please review the changes below and update your app as needed.Edge-to-edge opt-out is being removed
Apps targeting Android 15 could opt out of forced edge-to-edge, but this is no longer possible with Android 16. Ensure your app’s edge-to-edge experience works correctly on Android 15+.
To go a step further and to also enable edge-to-edge on supported devices below Android 15, React Native 0.81 introduces a new Gradle property;
edgeToEdgeEnabled
(default is false). In addition to allowing your app content to flow seamlessly beneath the system bars (on all supported Android versions), it also changes the behavior of certain existing APIs:backgroundColor
andtranslucent
props no longer have any effecthidden
prop now uses Android's immersive modestatusBarTranslucent
andnavigationBarTranslucent
props are always treated astrue
Note: This only works if you use the ReactActivity provided by React Native. If you use a custom Activity or Fragment to host React Native, you’ll need to manually add native code changes. See the Google doc on edge-to-edge for more information.
🙏 Thank you, @zoontek for your contribution adding support for these features.
<SafeAreaView>
is deprecated — use react-native-safe-area-contextWe previously recommended react-native-safe-area-context because
<SafeAreaView>
did not support Android and had limited features for iOS. We are now deprecating<SafeAreaView>
, and it may be removed in the future. Please migrate to react-native-safe-area-context or an equivalent library. You will see warnings in React Native DevTools if your app uses<SafeAreaView>
.🙏 Thank you, @kikoso for your work heping us deprecate SafeAreaView.
Predictive back is being enforced
Apps targeting Android 16 enable predictive back by default. Predictive back animation is supported when exiting the app, and BackHandler should continue to work.
However,
onBackPressed
is no longer called, andKeyEvent.KEYCODE_BACK
is not dispatched in Android native code. RN 0.81 includes changes to continue supporting native back handling, but if you have custom native back handling code, you may need to migrate manually using the backwards-compatible OnBackPressedDispatcher. See also update example here on handlingDefaultHardwareBackBtnHandler
from your custom host Activity. If you encounter issues, you can temporarily opt-out for now.See Google's predictive back gesture doc for more info.
Adaptive layout on large screen devices
For large screen devices (smallest width ≥ 600dp), app orientation, resizability, and aspect ratio restrictions are ignored. Android is moving toward adaptive layout to support varying screen sizes. Please test your app on large screens. If your app is not ready, you can opt out for now. Also, if you find issues with React Native while supporting large screens, please file a bug report.
16KB page size is required starting November 1, 2025
Android 15 introduced the 16 KB page size, and React Native has supported it since 0.79. However, for your app to be fully 16KB page size ready, all your native binaries—including any third-party libraries with native code—must support it.
Although Android 16 introduces compatibility mode, Google has announced that you must support 16KB page size starting November 1, 2025 for Play Store submissions. This applies to all new apps and updates targeting Android 15+ devices.
See this Google video for more information on supporting 16KB page size.
To learn more about Android 16 changes, read the official guidance for Android developers on behavior changes in Android 16.
You can also watch the Google I/O 2025 announcement video.
Beta Was this translation helpful? Give feedback.
All reactions