Developer guide
Window insets basics
windowinsets.info shows you the insets on each device. This guide tells you what they mean and how to use them in code.
What are window insets?
Window insets describe how much screen space is reserved by the system and cannot be used by your app:
- Status bar: Clock, signal, battery at the top. Inset:
statusBars() - Navigation bar: Back, home, recent apps at the bottom (or side). Inset:
navigationBars() - Display cutout: Camera holes, notches, waterfalls. Inset:
displayCutout() - System gestures: Swipe areas at screen edges that trigger the system back or recents. Inset:
systemGestures() - Corner radii: How rounded the screen corners are. API:
Display.getRoundedCorner()
Why you can't hardcode insets
Measured Galaxy values differ by device, so a fixed status bar or navigation bar height will be wrong somewhere. Ranges below are portrait captures in dp, computed from this site's raw InsetsProbe captures at build time.
Galaxy phones (55 devices)
| Status bar height | 22.93 dp (Galaxy A06) – 37.33 dp (Galaxy S26+) |
|---|---|
| Navigation bar, gesture | 14.86 dp (Galaxy A32) – 15 dp (Galaxy S26) |
| Navigation bar, 3-button | 48 dp on every device |
| Back-gesture zone width | 29.71 dp (Galaxy A32) – 30 dp (Galaxy S26) |
Galaxy Z Fold cover screens (8 devices)
| Status bar height | 31 dp (Galaxy Z Fold2) – 41.9 dp (Galaxy Z Fold8) |
|---|---|
| Navigation bar, gesture | 14.86 dp (Galaxy Z Fold3) – 15 dp (Galaxy Z Fold8 Ultra) |
| Navigation bar, 3-button | 48 dp on every device |
| Back-gesture zone width | 29.71 dp (Galaxy Z Fold3) – 30 dp (Galaxy Z Fold8 Ultra) |
The status bar varies most: a layout padded by a hardcoded value is either cut off or leaves a gap. Read the insets at runtime with WindowInsets (Compose) or WindowInsetsCompat (Views) as shown in the Compose and Views guide. Flip and TriFold cover screens use different system UI and are not mixed into these ranges.
Gesture zones vs. tappable elements
A device page's Gesture Zones and Tappable layers answer different questions, so they can look alike in one navigation mode and diverge in the other:
systemGestures()(Gesture Zones): where the system may take a swipe for back, home or the notification shade. Keep drag handles, sliders and swipeable rows out of it.mandatorySystemGestures(): the part of those zones apps can never reclaim withsetSystemGestureExclusionRects(), such as the home swipe at the bottom.tappableElement()(Tappable): where visible system controls receive taps. Keep buttons and other tap targets out of it.
Gesture navigation: the two differ on almost every captured device. Gesture zones add back-swipe strips on the left and right edges and a band at the bottom, while the tappable inset is zero on the sides and at the bottom (unless a taskbar is shown). A button may sit in the bottom gesture band, but a horizontal slider there competes with the home gesture.
3-button navigation: the sides have no back swipe, so both insets usually equal the status bar and the navigation bar. Many Galaxy devices still report a gesture zone at the top that extends past the status bar, where a swipe opens the notification shade.
Found an issue or want to contribute?
Open an issue or pull request on GitHub. If you have a device and want to add insets data, use InsetsProbe and share your JSON.