Skip to content

[Android] Edge to Edge should only be offered at a higher API #89774

@Piinks

Description

@Piinks

Internal b/199406748

#81303 added support for Android fullscreen modes like Edge to Edge.

We had not offered this before, so we offered edge to edge at the earliest available API - 16
This does not seem appropriate as you cannot change the navigation bar color until API 26 in the framework, and the contrast scrim is not available until 29 to ensure icons are visible with enough contrast.

  • API 19-20: We can't set status/navigation bar colors in these versions, so edge to edge cannot be properly configured

  • API 21-25: These versions support setting the navigation bar color, but the current Flutter Engine implementation does not allow setting the navigation bar color. Flutter has limited this because the ability to alter the navigation bar icon colors is not available until API 26. We investigated making this available on earlier these earlier APIs but found it broke customers. More context here:

  • API 26-28: These versions support setting both the navigation bar color and navigation bar icon color. However, they will not offer background protection for navigation bar when using transparent color - this is the translucent body scrim that is automatically applied starting at API 29 to ensure proper contrast for the icons.

  • API 29+: Full-support - maybe we should limit edge to edge to this api and above. I think this was when it was first introduced or recommended.

Metadata

Metadata

Assignees

Labels

P0Critical issues such as a build break or regressiona: layoutSystemChrome and Framework's Layout Issuescustomer: money (g3)engineflutter/engine related. See also e: labels.frameworkflutter/packages/flutter repository. See also f: labels.platform-androidAndroid applications specifically

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions