Android

Android 15 Edge to Edge Mode

2025-10-30

What is "Edge to Edge Mode" in Android 15

On Android 15 devices, the system will force/default to enable edge to edge layout. The content of the app will extend to all edges of the screen (below the top status bar, above the bottom navigation bar, and even at locations with bangs or holes on the screen).

The status bar and navigation bar of the system are default transparent or semi transparent, and no longer automatically reserve edge space occlusion for app content (unless you handle insets/safe zones).  Android Developers+2Android Developers+2

So the responsibility of "displaying the edge" falls more on the developers: to handle the overlap between content and the system bar, so that interactive controls are not obscured by the system bar. Android Developers+1


Behavioral changes in Android 15 (impact on developers)

What specific changes will there be, you need to pay attention to:

What if you don't do itHow will it lookWhat needs to be done
App target < 35The system will not force edge to edge; The status bar/navigation bar may obstruct the environment and be processed for compatibility by the systemOptionally, use APIs such as WindowCompat. enableEdgeToEdge (...) to manually enable edge mode.
App target ≥ 35,in Android 15The default content will extend behind the status bar and navigation bar; The status bar is transparent by default; The three button navigation bar may have a semi transparent background in certain modesWindow insets (system bar, gesture navigation, safe zone, digging holes, etc.) must be handled to ensure that the UI is not obscured or interacts abnormally.


How do developers handle/implement Edge to Edge

Not easily broken by edge to edge UI

Enable edge to edge (compatible with older Android versions) in Activity. onCreate (...)

WindowCompat.enableEdgeToEdge(window)

Handle insets (safe zone+system bar area) in the layout

Use WindowInsetsCompat. Type.systemBars() to obtain the inset of the status bar and navigation bar, and set padding or margins for key views (buttons, AppBar, FAB, etc.) to avoid being obscured.

For devices that dig holes or display cutouts, layoutInDisplayCutoutMode=ALWAYS (or equivalent behavior) should be set to ensure that the content can be extended in the digging area but the safety content is not obscured.

Background/Color Processing

The API for setting the color of the status bar and navigation bar has been somewhat abandoned or changed in behavior in Android 15, especially in gesture navigation mode. You cannot rely solely on setting the color of the navigation bar to "disguise" the edges.

Scrims or masks (semi transparent backgrounds) may need to provide a background for the system bar to ensure that the content is distinguishable above the system bar and has good interactivity.


Possible pitfalls/precautions during use

Control obscured - UI elements (such as buttons, input boxes, top toolbar, bottom buttons) will be obscured by the status bar or navigation bar or the click area will be unavailable if padding/ins is not set correctly.

Display stability - the status bar is transparent and the content behind it is complex, which may cause visual inconsistency (such as the status bar icon being too bright to see clearly due to the background), or problems such as background flickering when scrolling.

Navigation bar color/comparability issue - In gesture navigation mode, users expect the background or content of the navigation bar to have contrast with the app content, otherwise the icons may not be visible.

Performance issues - Continuously monitoring insets or frequently adjusting boundaries in certain complex layouts may result in performance overhead.

more stories
See more