Figure 1. The status bar and navigation bar,
collectively called the system bars.
Layout all apps so that your content stretches from the top edge to the bottom
edge of the screen. This is the default behavior beginning in Android 15
(API level 35). This means that the top and bottom areas of your app are laid
out behind the status bar and the navigation bar. Together, the status bar and
the navigation bar are called the system bars. The system bars are areas that
are generally dedicated to the display of notifications, communication of device
status, and device navigation.
The overlaps between your app and the areas where the system UI is displayed is
one example of window insets, which represent the parts of your screen where
your app can intersect with the system UI. Intersecting with these parts of the
UI can mean displaying above the content, but it can also inform your app about
system gestures.
The following types of window insets are available.
By default, opt-in to expand your app window to extend across the entire
screen and draw app content edge-to-edge
behind the system bars. Use offsets to avoid displaying important content
and touch targets behind system bars.
Apps that display content such as movies or images can temporarily hide the
system bars for a more immersive experience.
Carefully consider your users' needs and expectations before modifying the
system bars, since they give users a standard way of navigating a device and
viewing its status.
A display cutout is an area on some devices that extends into the display
surface to provide space for sensors on the front of the device. Apps can
support display cutouts by querying their
positions so that no important content overlaps the cutout area.
A keyboard transition is a common example where window insets are
dynamically updated. Apps can observe the current keyboard state,
programmatically toggle the states, support animations for window insets,
and make app content animate seamlessly between keyboard transitions.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-08-26 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-26 UTC."],[],[],null,["Try the Compose way \nJetpack Compose is the recommended UI toolkit for Android. Learn how to work with WindowInsets in Compose. \n[WindowInsets in Compose →](/develop/ui/compose/system/insets) \n\n\u003cbr /\u003e\n\n**Figure 1.** The status bar and navigation bar, collectively called the *system bars*.\n\nLayout all apps so that your content stretches from the top edge to the bottom\nedge of the screen. This is the default behavior beginning in Android 15\n(API level 35). This means that the top and bottom areas of your app are laid\nout behind the status bar and the navigation bar. Together, the status bar and\nthe navigation bar are called the *system bars*. The system bars are areas that\nare generally dedicated to the display of notifications, communication of device\nstatus, and device navigation.\n\nThe overlaps between your app and the areas where the system UI is displayed is\none example of *window insets*, which represent the parts of your screen where\nyour app can intersect with the system UI. Intersecting with these parts of the\nUI can mean displaying above the content, but it can also inform your app about\nsystem gestures.\n\nThe following types of window insets are available.\n\n- By default, opt-in to expand your app window to extend across the entire\n screen and draw app content [edge-to-edge](/training/gestures/edge-to-edge)\n behind the system bars. Use offsets to avoid displaying important content\n and touch targets behind system bars.\n\n- Apps that display content such as movies or images can temporarily [hide the\n system bars](/training/system-ui/immersive) for a more immersive experience.\n Carefully consider your users' needs and expectations before modifying the\n system bars, since they give users a standard way of navigating a device and\n viewing its status.\n\n- A *display cutout* is an area on some devices that extends into the display\n surface to provide space for sensors on the front of the device. Apps can\n support [display cutouts](/guide/topics/display-cutout) by querying their\n positions so that no important content overlaps the cutout area.\n\n- A keyboard transition is a common example where window insets are\n dynamically updated. Apps can observe the current keyboard state,\n programmatically toggle the states, support animations for window insets,\n and make app content animate seamlessly between keyboard transitions."]]