Skip to content

[Edge to Edge Enforcement] Documentation for migrating apps to new Edge-to-Edge behavior #12211

@Sesa1988

Description

@Sesa1988

Steps to reproduce

Hi,

I've tried various options to get the content to scroll behind the bottom system navigation bar as Google intended, while still getting padding for lists and no content cut off. I also read this: https://docs.flutter.dev/release/breaking-changes/default-systemuimode-edge-to-edge but there is only a guide for opt-out what will not work in the future.

Option 1:
Wrap your app with SafeArea(top: false, bottom: true)
→ The content does not flow behind the system navigation bar, the behavior is the same as before.
I'm not even sure if this is a legitimate approach to preserve the old layout style, but with Edge-to-Edge policy soon being enforced, will apps that retain the previous behavior and styling still pass Play Store review?

Option 2:
Wrap your app with MediaQuery.viewPaddingOf(context).bottom padding
→ The content does not flow behind the system navigation bar, the behavior is the same as before. I don't know why Flutter interprets it this way and doesn't simply add padding when necessary.

Option 3, and apparently the only one that works:
Go through your entire app and check every scrollable area, lists, column, bottom sheet and so on and manually add MediaQuery.viewPaddingOf(context).bottom.

Current Result

Is this truly the only viable solution to support the new feature? Since opting out won’t be possible in the future, I’d prefer to implement it the correct way from the start. Calling SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge) doesn’t seem to make a difference and is likely either already invoked internally or enforced by default. Should we remove this?

Expected results

Clear documentation and guidelines are essential at this point, especially since this behavior is being enforced and apps will no longer be eligible for updates in approximately 55 days if not properly addressed. What´s the recommended solution to support system control overlays the content and what´s the best way to prevent it and is it even a viable solution in the long term?

This is also related to: flutter/flutter#170640

I'm on Flutter version: Flutter 3.27.4

Metadata

Metadata

Assignees

Labels

e3-weeksEffort: < 4 weeksp2-mediumNecessary but not urgent concern. Resolve when possible.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions