From 6b5d04bc5bf0e0f911926a2363bad4b462508f24 Mon Sep 17 00:00:00 2001 From: Camille Simon Date: Mon, 27 Apr 2026 14:00:30 -0700 Subject: [PATCH 1/4] Add breaking change page for Android 17 restrictions --- ...roid-large-screens-restrictions-ignored.md | 51 +++++++++++++++++++ src/content/release/breaking-changes/index.md | 2 + 2 files changed, 53 insertions(+) create mode 100644 src/content/release/breaking-changes/android-large-screens-restrictions-ignored.md diff --git a/src/content/release/breaking-changes/android-large-screens-restrictions-ignored.md b/src/content/release/breaking-changes/android-large-screens-restrictions-ignored.md new file mode 100644 index 0000000000..3b5242c183 --- /dev/null +++ b/src/content/release/breaking-changes/android-large-screens-restrictions-ignored.md @@ -0,0 +1,51 @@ +--- +title: Orientation and resizability restrictions ignored on Android 17 +description: >- + For apps targeting Android 17 or higher, orientation, resizability, and + aspect ratio restrictions no longer apply on large displays (widths 600dp or + larger). +--- + +{% render "docs/breaking-changes.md" %} + +## Summary + +For apps targeting Android 17 or higher, orientation, resizability, and +aspect ratio restrictions no longer apply on displays with width 600dp or +greater. This means that [`SystemChrome.setPreferredOrientations`][] is +ignored on these devices. + +## Background + +Android is shifting toward a model where apps are expected to adapt to various +orientations, display sizes, and aspect ratios. +Restrictions like fixed orientation or limited resizability hinder app +adaptability. See [Android 17 behavior changes][] for more details. + +In Android 16, this behavior was introduced as a default but allowed apps to +temporarily opt out using the `PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY` +manifest property. Android 17 removes this opt-out. + +## Description of change + +If you rely on [`SystemChrome.setPreferredOrientations`][] to lock your app to a +specific orientation, it is ignored on large screens (widths 600dp and larger) if +your app targets Android 17 or higher. If your app supports Android 16 +and you did not opt out of this behavior, then it behaves the same +on Android 17. + +If your app relies on locking orientation, make your app adaptive to support +different screen sizes and orientations. See the guidance for how to do this +for large screens in [Adaptive and responsive UI][]. + +## References + +* [Android 17 behavior changes][] +* [Android 16 behavior changes][] +* [`SystemChrome.setPreferredOrientations`][] +* [Adaptive and responsive UI][] + +[Android 17 behavior changes]: https://developer.android.com/about/versions/17/changes/ff-restrictions-ignored +[Android 16 behavior changes]: https://developer.android.com/about/versions/16/behavior-changes-16#ignore-orientation +[`SystemChrome.setPreferredOrientations`]: {{site.api}}/flutter/services/SystemChrome/setPreferredOrientations.html +[Adaptive and responsive UI]: /ui/adaptive-responsive/large-screens diff --git a/src/content/release/breaking-changes/index.md b/src/content/release/breaking-changes/index.md index b1106c7a26..7b9a9378fb 100644 --- a/src/content/release/breaking-changes/index.md +++ b/src/content/release/breaking-changes/index.md @@ -36,6 +36,7 @@ They're sorted by release and listed in alphabetical order: ### Not yet released to stable +* [Android large screens restrictions ignored][] * [Changing RawMenuAnchor close order][] * [Deprecate `onReorder` callback][] * [Deprecated `cacheExtent` and `cacheExtentStyle`][] @@ -45,6 +46,7 @@ They're sorted by release and listed in alphabetical order: * [Migrating Flutter Android projects to built-in Kotlin][] * [Page transition builders reorganization][] +[Orientation and resizability restrictions ignored on Android 17]: /release/breaking-changes/android-large-screens-restrictions-ignored [Changing RawMenuAnchor close order]: /release/breaking-changes/raw-menu-anchor-close-order [Deprecate `onReorder` callback]: /release/breaking-changes/deprecate-onreorder-callback [Deprecated `cacheExtent` and `cacheExtentStyle`]: /release/breaking-changes/scroll-cache-extent From e7175a533632eb5011bf75ee138501ebcf0c109b Mon Sep 17 00:00:00 2001 From: Camille Simon Date: Mon, 27 Apr 2026 14:07:30 -0700 Subject: [PATCH 2/4] semnatic line breaks --- ...roid-large-screens-restrictions-ignored.md | 44 +++++++++++-------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/src/content/release/breaking-changes/android-large-screens-restrictions-ignored.md b/src/content/release/breaking-changes/android-large-screens-restrictions-ignored.md index 3b5242c183..1245660cae 100644 --- a/src/content/release/breaking-changes/android-large-screens-restrictions-ignored.md +++ b/src/content/release/breaking-changes/android-large-screens-restrictions-ignored.md @@ -10,33 +10,39 @@ description: >- ## Summary -For apps targeting Android 17 or higher, orientation, resizability, and -aspect ratio restrictions no longer apply on displays with width 600dp or -greater. This means that [`SystemChrome.setPreferredOrientations`][] is -ignored on these devices. +For apps targeting Android 17 or higher, +orientation, resizability, and aspect ratio restrictions no longer apply +on displays with width 600dp or greater. +This means that [`SystemChrome.setPreferredOrientations`][] is ignored +on these devices. ## Background -Android is shifting toward a model where apps are expected to adapt to various -orientations, display sizes, and aspect ratios. +Android is shifting toward a model where apps are expected to adapt +to various orientations, display sizes, and aspect ratios. Restrictions like fixed orientation or limited resizability hinder app -adaptability. See [Android 17 behavior changes][] for more details. +adaptability. +See [Android 17 behavior changes][] for more details. -In Android 16, this behavior was introduced as a default but allowed apps to -temporarily opt out using the `PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY` -manifest property. Android 17 removes this opt-out. +In Android 16, this behavior was introduced as a default +but allowed apps to temporarily opt out +using the `PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY` manifest property. +Android 17 removes this opt-out. ## Description of change -If you rely on [`SystemChrome.setPreferredOrientations`][] to lock your app to a -specific orientation, it is ignored on large screens (widths 600dp and larger) if -your app targets Android 17 or higher. If your app supports Android 16 -and you did not opt out of this behavior, then it behaves the same -on Android 17. - -If your app relies on locking orientation, make your app adaptive to support -different screen sizes and orientations. See the guidance for how to do this -for large screens in [Adaptive and responsive UI][]. +If you rely on [`SystemChrome.setPreferredOrientations`][] +to lock your app to a specific orientation, +it is ignored on large screens (widths 600dp and larger) +if your app targets Android 17 or higher. +If your app supports Android 16 +and you did not opt out of this behavior, +then it behaves the same on Android 17. + +If your app relies on locking orientation, +make your app adaptive to support different screen sizes and orientations. +See the guidance for how to do this for large screens +in [Adaptive and responsive UI][]. ## References From 11096c165ba4bb1e0fe9d83f5b00f5d2e3209943 Mon Sep 17 00:00:00 2001 From: Camille Simon Date: Mon, 27 Apr 2026 14:08:42 -0700 Subject: [PATCH 3/4] change title + fix index.md --- .../android-large-screens-restrictions-ignored.md | 2 +- src/content/release/breaking-changes/index.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/content/release/breaking-changes/android-large-screens-restrictions-ignored.md b/src/content/release/breaking-changes/android-large-screens-restrictions-ignored.md index 1245660cae..7f0052019e 100644 --- a/src/content/release/breaking-changes/android-large-screens-restrictions-ignored.md +++ b/src/content/release/breaking-changes/android-large-screens-restrictions-ignored.md @@ -1,5 +1,5 @@ --- -title: Orientation and resizability restrictions ignored on Android 17 +title: Large screen orientation and resizability restrictions ignored on Android 17 description: >- For apps targeting Android 17 or higher, orientation, resizability, and aspect ratio restrictions no longer apply on large displays (widths 600dp or diff --git a/src/content/release/breaking-changes/index.md b/src/content/release/breaking-changes/index.md index 7b9a9378fb..45c0065f2d 100644 --- a/src/content/release/breaking-changes/index.md +++ b/src/content/release/breaking-changes/index.md @@ -36,7 +36,7 @@ They're sorted by release and listed in alphabetical order: ### Not yet released to stable -* [Android large screens restrictions ignored][] +* [Large screen orientation and resizability restrictions ignored on Android 17][] * [Changing RawMenuAnchor close order][] * [Deprecate `onReorder` callback][] * [Deprecated `cacheExtent` and `cacheExtentStyle`][] @@ -46,7 +46,7 @@ They're sorted by release and listed in alphabetical order: * [Migrating Flutter Android projects to built-in Kotlin][] * [Page transition builders reorganization][] -[Orientation and resizability restrictions ignored on Android 17]: /release/breaking-changes/android-large-screens-restrictions-ignored +[Large screen orientation and resizability restrictions ignored on Android 17]: /release/breaking-changes/android-large-screens-restrictions-ignored [Changing RawMenuAnchor close order]: /release/breaking-changes/raw-menu-anchor-close-order [Deprecate `onReorder` callback]: /release/breaking-changes/deprecate-onreorder-callback [Deprecated `cacheExtent` and `cacheExtentStyle`]: /release/breaking-changes/scroll-cache-extent From c49dccfd84028f33d2c33b6356ed3e434e40a68e Mon Sep 17 00:00:00 2001 From: Camille Simon Date: Mon, 27 Apr 2026 14:27:10 -0700 Subject: [PATCH 4/4] alphabetical order --- src/content/release/breaking-changes/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/release/breaking-changes/index.md b/src/content/release/breaking-changes/index.md index 45c0065f2d..d7383e142c 100644 --- a/src/content/release/breaking-changes/index.md +++ b/src/content/release/breaking-changes/index.md @@ -36,12 +36,12 @@ They're sorted by release and listed in alphabetical order: ### Not yet released to stable -* [Large screen orientation and resizability restrictions ignored on Android 17][] * [Changing RawMenuAnchor close order][] * [Deprecate `onReorder` callback][] * [Deprecated `cacheExtent` and `cacheExtentStyle`][] * [Deprecate `TextInputConnection.setStyle`][] * [`IconData` class marked as `final`][] +* [Large screen orientation and resizability restrictions ignored on Android 17][] * [ListTile reports error in debug when wrapped in a colored widget][] * [Migrating Flutter Android projects to built-in Kotlin][] * [Page transition builders reorganization][]