WindowInsets
  public
  
  final
  
  class
  WindowInsets
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.view.WindowInsets | 
Describes a set of insets for window content.
WindowInsets are immutable and may be expanded to include more inset types in the future. To adjust insets, use one of the supplied clone methods to obtain a new WindowInsets instance with the adjusted properties.
Note: Before P, WindowInsets instances were only
 immutable during a single layout pass (i.e. would return the same values between
 View.onApplyWindowInsets and View.onLayout, but could return other values
 otherwise). Starting with P, WindowInsets are
 always immutable and implement equality.
Summary
| Nested classes | |
|---|---|
| 
        
        
        
        
        class | WindowInsets.BuilderBuilder for WindowInsets. | 
| 
        
        
        
        
        class | WindowInsets.SideClass that defines different sides for insets. | 
| 
        
        
        
        
        class | WindowInsets.TypeClass that defines different types of sources causing window insets. | 
| Fields | |
|---|---|
| 
    public
    static
    final
    WindowInsets | CONSUMEDA  | 
| Public constructors | |
|---|---|
| 
      WindowInsets(WindowInsets src)
      Construct a new WindowInsets, copying all values from a source WindowInsets. | |
| Public methods | |
|---|---|
| 
        
        
        
        
        
        WindowInsets | 
      consumeDisplayCutout()
      
      This method was deprecated
      in API level 30.
    Consuming of different parts individually of a  | 
| 
        
        
        
        
        
        WindowInsets | 
      consumeStableInsets()
      
      This method was deprecated
      in API level 30.
    Consuming of different parts individually of a  | 
| 
        
        
        
        
        
        WindowInsets | 
      consumeSystemWindowInsets()
      
      This method was deprecated
      in API level 30.
    Consuming of different parts individually of a  | 
| 
        
        
        
        
        
        boolean | 
      equals(Object o)
      Indicates whether some other object is "equal to" this one. | 
| 
        
        
        
        
        
        List<Rect> | 
      getBoundingRects(int typeMask)
      Returns a list of  | 
| 
        
        
        
        
        
        List<Rect> | 
      getBoundingRectsIgnoringVisibility(int typeMask)
      Returns a list of  | 
| 
        
        
        
        
        
        DisplayCutout | 
      getDisplayCutout()
      Returns the display cutout if there is one. | 
| 
        
        
        
        
        
        DisplayShape | 
      getDisplayShape()
      Returns the display shape in the coordinate space of the window. | 
| 
        
        
        
        
        
        Size | 
      getFrame()
      Returns the assumed size of the window, relative to which the  | 
| 
        
        
        
        
        
        Insets | 
      getInsets(int typeMask)
      Returns the insets of a specific set of windows causing insets, denoted by the
  | 
| 
        
        
        
        
        
        Insets | 
      getInsetsIgnoringVisibility(int typeMask)
      Returns the insets a specific set of windows can cause, denoted by the
  | 
| 
        
        
        
        
        
        Insets | 
      getMandatorySystemGestureInsets()
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        Rect | 
      getPrivacyIndicatorBounds()
      Returns the  | 
| 
        
        
        
        
        
        RoundedCorner | 
      getRoundedCorner(int position)
      Returns the  | 
| 
        
        
        
        
        
        int | 
      getStableInsetBottom()
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        int | 
      getStableInsetLeft()
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        int | 
      getStableInsetRight()
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        int | 
      getStableInsetTop()
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        Insets | 
      getStableInsets()
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        Insets | 
      getSystemGestureInsets()
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        int | 
      getSystemWindowInsetBottom()
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        int | 
      getSystemWindowInsetLeft()
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        int | 
      getSystemWindowInsetRight()
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        int | 
      getSystemWindowInsetTop()
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        Insets | 
      getSystemWindowInsets()
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        Insets | 
      getTappableElementInsets()
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        boolean | 
      hasInsets()
      Returns true if this WindowInsets has any nonzero insets. | 
| 
        
        
        
        
        
        boolean | 
      hasStableInsets()
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        boolean | 
      hasSystemWindowInsets()
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        int | 
      hashCode()
      Returns a hash code value for the object. | 
| 
        
        
        
        
        
        WindowInsets | 
      inset(int left, int top, int right, int bottom)
      Returns a copy of this instance inset in the given directions. | 
| 
        
        
        
        
        
        WindowInsets | 
      inset(Insets insets)
      Returns a copy of this instance inset in the given directions. | 
| 
        
        
        
        
        
        boolean | 
      isConsumed()
      Check if these insets have been fully consumed. | 
| 
        
        
        
        
        
        boolean | 
      isRound()
      Returns true if the associated window has a round shape. | 
| 
        
        
        
        
        
        boolean | 
      isVisible(int typeMask)
      Returns whether a set of windows that may cause insets is currently visible on screen, regardless of whether it actually overlaps with this window. | 
| 
        
        
        
        
        
        WindowInsets | 
      replaceSystemWindowInsets(int left, int top, int right, int bottom)
      
      This method was deprecated
      in API level 29.
    use  | 
| 
        
        
        
        
        
        WindowInsets | 
      replaceSystemWindowInsets(Rect systemWindowInsets)
      
      This method was deprecated
      in API level 29.
    use  | 
| 
        
        
        
        
        
        String | 
      toString()
      Returns a string representation of the object. | 
| Inherited methods | |
|---|---|
Fields
CONSUMED
public static final WindowInsets CONSUMED
A WindowInsets instance for which isConsumed() returns true.
 
 This can be used during insets dispatch in the view hierarchy by returning this value from
 View.onApplyWindowInsets(WindowInsets) or
 OnApplyWindowInsetsListener.onApplyWindowInsets(View, WindowInsets) to stop dispatch
 the insets to its children to avoid traversing the entire view hierarchy.
 
The application should return this instance once it has taken care of all insets on a certain level in the view hierarchy, and doesn't need to dispatch to its children anymore for better performance.
See also:
Public constructors
WindowInsets
public WindowInsets (WindowInsets src)
Construct a new WindowInsets, copying all values from a source WindowInsets.
| Parameters | |
|---|---|
| src | WindowInsets: Source to copy insets from | 
Public methods
consumeDisplayCutout
public WindowInsets consumeDisplayCutout ()
      This method was deprecated
      in API level 30.
    Consuming of different parts individually of a WindowInsets instance is
 deprecated, since WindowInsets contains many different insets. Use CONSUMED
 instead to stop dispatching insets.
  
Returns a copy of this WindowInsets with the cutout fully consumed.
| Returns | |
|---|---|
| WindowInsets | A modified copy of this WindowInsets
 This value cannot be null. | 
consumeStableInsets
public WindowInsets consumeStableInsets ()
      This method was deprecated
      in API level 30.
    Consuming of different parts individually of a WindowInsets instance is
 deprecated, since WindowInsets contains many different insets. Use CONSUMED
 instead to stop dispatching insets. On R, this
 method has no effect.
  
Returns a copy of this WindowInsets with the stable insets fully consumed.
| Returns | |
|---|---|
| WindowInsets | A modified copy of this WindowInsets
 This value cannot be null. | 
consumeSystemWindowInsets
public WindowInsets consumeSystemWindowInsets ()
      This method was deprecated
      in API level 30.
    Consuming of different parts individually of a WindowInsets instance is
 deprecated, since WindowInsets contains many different insets. Use CONSUMED
 instead to stop dispatching insets.
  
Returns a copy of this WindowInsets with the system window insets fully consumed.
| Returns | |
|---|---|
| WindowInsets | A modified copy of this WindowInsets
 This value cannot be null. | 
equals
public boolean equals (Object o)
Indicates whether some other object is "equal to" this one.
 The equals method implements an equivalence relation
 on non-null object references:
 
- It is reflexive: for any non-null reference value
     x,x.equals(x)should returntrue.
- It is symmetric: for any non-null reference values
     xandy,x.equals(y)should returntrueif and only ify.equals(x)returnstrue.
- It is transitive: for any non-null reference values
     x,y, andz, ifx.equals(y)returnstrueandy.equals(z)returnstrue, thenx.equals(z)should returntrue.
- It is consistent: for any non-null reference values
     xandy, multiple invocations ofx.equals(y)consistently returntrueor consistently returnfalse, provided no information used inequalscomparisons on the objects is modified.
- For any non-null reference value x,x.equals(null)should returnfalse.
An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.
| Parameters | |
|---|---|
| o | Object: This value may benull. | 
| Returns | |
|---|---|
| boolean | trueif this object is the same as the obj
          argument;falseotherwise. | 
getBoundingRects
public List<Rect> getBoundingRects (int typeMask)
Returns a list of Rects, each of which is the bounding rectangle for an area
 that is being partially or fully obscured inside the window.
 
 May be used with or instead of Insets for finer avoidance of regions that may be
 partially obscuring the window but may be smaller than those provided by
 getInsets(int).
 
 The Rects returned are always cropped to the bounds of the window frame and their
 coordinate values are relative to the getFrame(), regardless of the window's
 position on screen.
 
 If inset by inset(android.graphics.Insets), bounding rects that intersect with the provided insets
 will be resized to only include the intersection with the remaining frame. Bounding rects
 may be completely removed if they no longer intersect with the new instance.
 
| Parameters | |
|---|---|
| typeMask | int: the insets type for which to obtain the bounding rectangles
 Value is either0or a combination of android.view.WindowInsets.Type.STATUS_BARS, android.view.WindowInsets.Type.NAVIGATION_BARS, android.view.WindowInsets.Type.CAPTION_BAR, android.view.WindowInsets.Type.IME, android.view.WindowInsets.Type.SYSTEM_GESTURES, android.view.WindowInsets.Type.MANDATORY_SYSTEM_GESTURES, android.view.WindowInsets.Type.TAPPABLE_ELEMENT, android.view.WindowInsets.Type.DISPLAY_CUTOUT, and android.view.WindowInsets.Type.SYSTEM_OVERLAYS | 
| Returns | |
|---|---|
| List<Rect> | the bounding rectangles
 This value cannot be null. | 
getBoundingRectsIgnoringVisibility
public List<Rect> getBoundingRectsIgnoringVisibility (int typeMask)
Returns a list of Rects, each of which is the bounding rectangle for an area that
 can be partially or fully obscured inside the window, regardless of whether
 that type is currently visible or not.
 
 The bounding rects represent areas of a window that may be partially or fully
 obscured by the type. This value does not change based on the visibility state of
 those elements. For example, if the status bar is normally shown, but temporarily hidden,
 the bounding rects returned here will provide the rects associated with the status bar being
 shown.
 May be used with or instead of Insets for finer avoidance of regions that may be
 partially obscuring the window but may be smaller than those provided by
 getInsetsIgnoringVisibility(int).
 
 The Rects returned are always cropped to the bounds of the window frame and their
 coordinate values are relative to the getFrame(), regardless of the window's
 position on screen.
 
| Parameters | |
|---|---|
| typeMask | int: the insets type for which to obtain the bounding rectangles
 Value is either0or a combination of android.view.WindowInsets.Type.STATUS_BARS, android.view.WindowInsets.Type.NAVIGATION_BARS, android.view.WindowInsets.Type.CAPTION_BAR, android.view.WindowInsets.Type.IME, android.view.WindowInsets.Type.SYSTEM_GESTURES, android.view.WindowInsets.Type.MANDATORY_SYSTEM_GESTURES, android.view.WindowInsets.Type.TAPPABLE_ELEMENT, android.view.WindowInsets.Type.DISPLAY_CUTOUT, and android.view.WindowInsets.Type.SYSTEM_OVERLAYS | 
| Returns | |
|---|---|
| List<Rect> | the bounding rectangles
 This value cannot be null. | 
| Throws | |
|---|---|
| IllegalArgumentException | If the caller tries to query Type.ime(). Bounding
                                  rects are not available if the IME isn't visible as the
                                  height of the IME is dynamic depending on theEditorInfoof the currently focused view, as well
                                  as the UI state of the IME. | 
getDisplayCutout
public DisplayCutout getDisplayCutout ()
Returns the display cutout if there is one.
Note: the display cutout will already be consumed during
 dispatch to View.onApplyWindowInsets, unless the window has requested a
 WindowManager.LayoutParams.layoutInDisplayCutoutMode other than
 never or
 default.
| Returns | |
|---|---|
| DisplayCutout | the display cutout or null if there is none | 
See also:
getDisplayShape
public DisplayShape getDisplayShape ()
Returns the display shape in the coordinate space of the window.
| Returns | |
|---|---|
| DisplayShape | the display shape
 This value may be null. | 
See also:
getFrame
public Size getFrame ()
Returns the assumed size of the window, relative to which the getInsets(int) and
 getBoundingRects(int) have been calculated.
 
 May be used with getBoundingRects(int) to better understand their position within
 the window, such as the area between the edge of a bounding rect and the edge of the window.
 
Note: the size may not match the actual size of the window, which is determined during
 the layout pass - as WindowInsets are dispatched before layout.
 
Caution: using this value in determining the actual window size may make the result of layout passes unstable and should be avoided.
| Returns | |
|---|---|
| Size | the assumed size of the window during the inset calculation
 This value cannot be null. | 
getInsets
public Insets getInsets (int typeMask)
Returns the insets of a specific set of windows causing insets, denoted by the
 typeMask bit mask of Types.
| Parameters | |
|---|---|
| typeMask | int: Bit mask ofTypes to query the insets for.
 Value is either0or a combination of android.view.WindowInsets.Type.STATUS_BARS, android.view.WindowInsets.Type.NAVIGATION_BARS, android.view.WindowInsets.Type.CAPTION_BAR, android.view.WindowInsets.Type.IME, android.view.WindowInsets.Type.SYSTEM_GESTURES, android.view.WindowInsets.Type.MANDATORY_SYSTEM_GESTURES, android.view.WindowInsets.Type.TAPPABLE_ELEMENT, android.view.WindowInsets.Type.DISPLAY_CUTOUT, and android.view.WindowInsets.Type.SYSTEM_OVERLAYS | 
| Returns | |
|---|---|
| Insets | The insets.
 This value cannot be null. | 
getInsetsIgnoringVisibility
public Insets getInsetsIgnoringVisibility (int typeMask)
Returns the insets a specific set of windows can cause, denoted by the
 typeMask bit mask of Types, regardless of whether that type is
 currently visible or not.
 
The insets represents the area of a a window that that may be partially
 or fully obscured by the system window identified by type. This value does not
 change based on the visibility state of those elements. For example, if the status bar is
 normally shown, but temporarily hidden, the inset returned here will still provide the inset
 associated with the status bar being shown.
| Parameters | |
|---|---|
| typeMask | int: Bit mask ofTypes to query the insets for.
 Value is either0or a combination of android.view.WindowInsets.Type.STATUS_BARS, android.view.WindowInsets.Type.NAVIGATION_BARS, android.view.WindowInsets.Type.CAPTION_BAR, android.view.WindowInsets.Type.IME, android.view.WindowInsets.Type.SYSTEM_GESTURES, android.view.WindowInsets.Type.MANDATORY_SYSTEM_GESTURES, android.view.WindowInsets.Type.TAPPABLE_ELEMENT, android.view.WindowInsets.Type.DISPLAY_CUTOUT, and android.view.WindowInsets.Type.SYSTEM_OVERLAYS | 
| Returns | |
|---|---|
| Insets | The insets.
 This value cannot be null. | 
| Throws | |
|---|---|
| IllegalArgumentException | If the caller tries to query Type.ime(). Insets are
                                  not available if the IME isn't visible as the height of the
                                  IME is dynamic depending on theEditorInfoof the
                                  currently focused view, as well as the UI state of the IME. | 
getMandatorySystemGestureInsets
public Insets getMandatorySystemGestureInsets ()
      This method was deprecated
      in API level 30.
    Use getInsets(int) with Type.mandatorySystemGestures() instead.
  
Returns the mandatory system gesture insets.
The mandatory system gesture insets represent the area of a window where mandatory system gestures have priority and may consume some or all touch input, e.g. due to the a system bar occupying it, or it being reserved for touch-only gestures.
In contrast to regular system gestures, mandatory
 system gestures cannot be overridden by View.setSystemGestureExclusionRects.
 
Simple taps are guaranteed to reach the window even within the system gesture insets,
 as long as they are outside the system window insets.
 
When View.SYSTEM_UI_FLAG_LAYOUT_STABLE is requested, an inset will be returned
 even when the system gestures are inactive due to
 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
 View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION.
 
This inset is consumed together with the system window insets by consumeSystemWindowInsets().
| Returns | |
|---|---|
| Insets | This value cannot be null. | 
See also:
getPrivacyIndicatorBounds
public Rect getPrivacyIndicatorBounds ()
Returns the Rect of the maximum bounds of the system privacy indicator, for the
 current orientation, in relative coordinates, or null if the bounds have not been loaded yet.
 
The privacy indicator bounds are determined by SystemUI, and subsequently loaded once the StatusBar window has been created and attached. The bounds for all rotations are calculated and loaded at once, and this value is only expected to ever change on display or font scale changes. As long as there is a StatusBar window, this value should not be expected to be null.
The privacy indicator shows over apps when an app uses the microphone or camera permissions, while an app is in immersive mode.
| Returns | |
|---|---|
| Rect | A rectangle representing the maximum bounds of the indicator | 
getRoundedCorner
public RoundedCorner getRoundedCorner (int position)
Returns the RoundedCorner of the given position if there is one.
| Parameters | |
|---|---|
| position | int: the position of the rounded corner on the display. The value should be one of
                 the following:RoundedCorner.POSITION_TOP_LEFT,RoundedCorner.POSITION_TOP_RIGHT,RoundedCorner.POSITION_BOTTOM_RIGHT,RoundedCorner.POSITION_BOTTOM_LEFT.
 Value isRoundedCorner.POSITION_TOP_LEFT,RoundedCorner.POSITION_TOP_RIGHT,RoundedCorner.POSITION_BOTTOM_RIGHT, orRoundedCorner.POSITION_BOTTOM_LEFT | 
| Returns | |
|---|---|
| RoundedCorner | the rounded corner of the given position. Returns nullif there is none or
         the rounded corner area is not inside the application's bounds. | 
getStableInsetBottom
public int getStableInsetBottom ()
      This method was deprecated
      in API level 30.
    Use getInsetsIgnoringVisibility(int) with Type.systemBars()
 instead.
  
Returns the bottom stable inset in pixels.
The stable inset represents the area of a full-screen window that may be partially or fully obscured by the system UI elements. This value does not change based on the visibility state of those elements; for example, if the status bar is normally shown, but temporarily hidden, the stable inset will still provide the inset associated with the status bar being shown.
| Returns | |
|---|---|
| int | The bottom stable inset | 
getStableInsetLeft
public int getStableInsetLeft ()
      This method was deprecated
      in API level 30.
    Use getInsetsIgnoringVisibility(int) with Type.systemBars()
 instead.
  
Returns the left stable inset in pixels.
The stable inset represents the area of a full-screen window that may be partially or fully obscured by the system UI elements. This value does not change based on the visibility state of those elements; for example, if the status bar is normally shown, but temporarily hidden, the stable inset will still provide the inset associated with the status bar being shown.
| Returns | |
|---|---|
| int | The left stable inset | 
getStableInsetRight
public int getStableInsetRight ()
      This method was deprecated
      in API level 30.
    Use getInsetsIgnoringVisibility(int) with Type.systemBars()
 instead.
  
Returns the right stable inset in pixels.
The stable inset represents the area of a full-screen window that may be partially or fully obscured by the system UI elements. This value does not change based on the visibility state of those elements; for example, if the status bar is normally shown, but temporarily hidden, the stable inset will still provide the inset associated with the status bar being shown.
| Returns | |
|---|---|
| int | The right stable inset | 
getStableInsetTop
public int getStableInsetTop ()
      This method was deprecated
      in API level 30.
    Use getInsetsIgnoringVisibility(int) with Type.systemBars()
 instead.
  
Returns the top stable inset in pixels.
The stable inset represents the area of a full-screen window that may be partially or fully obscured by the system UI elements. This value does not change based on the visibility state of those elements; for example, if the status bar is normally shown, but temporarily hidden, the stable inset will still provide the inset associated with the status bar being shown.
| Returns | |
|---|---|
| int | The top stable inset | 
getStableInsets
public Insets getStableInsets ()
      This method was deprecated
      in API level 30.
    Use getInsetsIgnoringVisibility(int) with Type.systemBars()
 instead.
  
Returns the stable insets in pixels.
The stable inset represents the area of a full-screen window that may be partially or fully obscured by the system UI elements. This value does not change based on the visibility state of those elements; for example, if the status bar is normally shown, but temporarily hidden, the stable inset will still provide the inset associated with the status bar being shown.
| Returns | |
|---|---|
| Insets | The stable insets
 This value cannot be null. | 
getSystemGestureInsets
public Insets getSystemGestureInsets ()
      This method was deprecated
      in API level 30.
    Use getInsets(int) with Type.systemGestures() instead.
  
Returns the system gesture insets.
The system gesture insets represent the area of a window where system gestures have priority and may consume some or all touch input, e.g. due to the a system bar occupying it, or it being reserved for touch-only gestures.
An app can declare priority over system gestures with
 View.setSystemGestureExclusionRects outside of the
 mandatory system gesture insets.
 
Note: the system will put a limit of 200dp on the vertical extent of the
 exclusions it takes into account. The limit does not apply while the navigation
 bar is stickily hidden, nor to the
 input method and
 home activity.
 
Simple taps are guaranteed to reach the window even within the system gesture insets,
 as long as they are outside the system window insets.
 
When View.SYSTEM_UI_FLAG_LAYOUT_STABLE is requested, an inset will be returned
 even when the system gestures are inactive due to
 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
 View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION.
 
This inset is consumed together with the system window insets by consumeSystemWindowInsets().
| Returns | |
|---|---|
| Insets | This value cannot be null. | 
See also:
getSystemWindowInsetBottom
public int getSystemWindowInsetBottom ()
      This method was deprecated
      in API level 30.
    Use getInsets(int) with Type.systemBars()
 instead.
  
Returns the bottom system window inset in pixels.
The system window inset represents the area of a full-screen window that is partially or fully obscured by the status bar, navigation bar, IME or other system windows.
| Returns | |
|---|---|
| int | The bottom system window inset | 
getSystemWindowInsetLeft
public int getSystemWindowInsetLeft ()
      This method was deprecated
      in API level 30.
    Use getInsets(int) with Type.systemBars()
 instead.
  
Returns the left system window inset in pixels.
The system window inset represents the area of a full-screen window that is partially or fully obscured by the status bar, navigation bar, IME or other system windows.
| Returns | |
|---|---|
| int | The left system window inset | 
getSystemWindowInsetRight
public int getSystemWindowInsetRight ()
      This method was deprecated
      in API level 30.
    Use getInsets(int) with Type.systemBars()
 instead.
  
Returns the right system window inset in pixels.
The system window inset represents the area of a full-screen window that is partially or fully obscured by the status bar, navigation bar, IME or other system windows.
| Returns | |
|---|---|
| int | The right system window inset | 
getSystemWindowInsetTop
public int getSystemWindowInsetTop ()
      This method was deprecated
      in API level 30.
    Use getInsets(int) with Type.systemBars()
 instead.
  
Returns the top system window inset in pixels.
The system window inset represents the area of a full-screen window that is partially or fully obscured by the status bar, navigation bar, IME or other system windows.
| Returns | |
|---|---|
| int | The top system window inset | 
getSystemWindowInsets
public Insets getSystemWindowInsets ()
      This method was deprecated
      in API level 30.
    Use getInsets(int) with Type.systemBars()
  
Returns the system window insets in pixels.
The system window inset represents the area of a full-screen window that is partially or fully obscured by the status bar, navigation bar, IME or other system windows.
| Returns | |
|---|---|
| Insets | The system window insets
 This value cannot be null. | 
getTappableElementInsets
public Insets getTappableElementInsets ()
      This method was deprecated
      in API level 30.
    Use getInsets(int) with Type.tappableElement() instead.
  
Returns the tappable element insets.
The tappable element insets represent how much tappable elements must at least be inset to remain both tappable and visually unobstructed by persistent system windows.
This may be smaller than getSystemWindowInsets() if the system window is
 largely transparent and lets through simple taps (but not necessarily more complex gestures).
 
Note that generally, tappable elements should be aligned with the
 system window insets instead to avoid overlapping with the
 system bars.
 
When View.SYSTEM_UI_FLAG_LAYOUT_STABLE is requested, an inset will be returned
 even when the area covered by the inset would be tappable due to
 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
 View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION.
 
This inset is consumed together with the system window insets by consumeSystemWindowInsets().
| Returns | |
|---|---|
| Insets | This value cannot be null. | 
hasInsets
public boolean hasInsets ()
Returns true if this WindowInsets has any nonzero insets.
| Returns | |
|---|---|
| boolean | true if any inset values are nonzero | 
hasStableInsets
public boolean hasStableInsets ()
      This method was deprecated
      in API level 30.
    Use getInsetsIgnoringVisibility(int) with Type.systemBars()
 instead.
  
Returns true if this WindowInsets has nonzero stable insets.
The stable inset represents the area of a full-screen window that may be partially or fully obscured by the system UI elements. This value does not change based on the visibility state of those elements; for example, if the status bar is normally shown, but temporarily hidden, the stable inset will still provide the inset associated with the status bar being shown.
| Returns | |
|---|---|
| boolean | true if any of the stable inset values are nonzero | 
hasSystemWindowInsets
public boolean hasSystemWindowInsets ()
      This method was deprecated
      in API level 30.
    Use getInsets(int) with Type.systemBars()
 instead.
  
Returns true if this WindowInsets has nonzero system window insets.
The system window inset represents the area of a full-screen window that is partially or fully obscured by the status bar, navigation bar, IME or other system windows.
| Returns | |
|---|---|
| boolean | true if any of the system window inset values are nonzero | 
hashCode
public int hashCode ()
Returns a hash code value for the object. This method is
 supported for the benefit of hash tables such as those provided by
 HashMap.
 
 The general contract of hashCode is:
 
- Whenever it is invoked on the same object more than once during
     an execution of a Java application, the hashCodemethod must consistently return the same integer, provided no information used inequalscomparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
- If two objects are equal according to the equalsmethod, then calling thehashCodemethod on each of the two objects must produce the same integer result.
- It is not required that if two objects are unequal
     according to the equalsmethod, then calling thehashCodemethod on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
| Returns | |
|---|---|
| int | a hash code value for this object. | 
inset
public WindowInsets inset (int left, int top, int right, int bottom)
Returns a copy of this instance inset in the given directions.
This is intended for dispatching insets to areas of the window that are smaller than the current area.
Example:
 childView.dispatchApplyWindowInsets(insets.inset(
         childMarginLeft, childMarginTop, childMarginBottom, childMarginRight));
 | Parameters | |
|---|---|
| left | int: the amount of insets to remove from the left. Must be non-negative.
 Value is 0 or greater | 
| top | int: the amount of insets to remove from the top. Must be non-negative.
 Value is 0 or greater | 
| right | int: the amount of insets to remove from the right. Must be non-negative.
 Value is 0 or greater | 
| bottom | int: the amount of insets to remove from the bottom. Must be non-negative.
 Value is 0 or greater | 
| Returns | |
|---|---|
| WindowInsets | the inset insets
 This value cannot be null. | 
See also:
inset
public WindowInsets inset (Insets insets)
Returns a copy of this instance inset in the given directions.
This is intended for dispatching insets to areas of the window that are smaller than the current area.
Example:
childView.dispatchApplyWindowInsets(insets.inset(childMargins));
| Parameters | |
|---|---|
| insets | Insets: the amount of insets to remove from all sides.
 This value cannot benull. | 
| Returns | |
|---|---|
| WindowInsets | This value cannot be null. | 
See also:
isConsumed
public boolean isConsumed ()
Check if these insets have been fully consumed.
Insets are considered "consumed" if the applicable consume* methods
 have been called such that all insets have been set to zero. This affects propagation of
 insets through the view hierarchy; insets that have not been fully consumed will continue
 to propagate down to child views.
The result of this method is equivalent to the return value of
 View.fitSystemWindows(android.graphics.Rect).
| Returns | |
|---|---|
| boolean | true if the insets have been fully consumed. | 
isRound
public boolean isRound ()
Returns true if the associated window has a round shape.
A round window's left, top, right and bottom edges reach all the way to the associated edges of the window but the corners may not be visible. Views responding to round insets should take care to not lay out critical elements within the corners where they may not be accessible.
| Returns | |
|---|---|
| boolean | True if the window is round | 
isVisible
public boolean isVisible (int typeMask)
Returns whether a set of windows that may cause insets is currently visible on screen, regardless of whether it actually overlaps with this window.
| Parameters | |
|---|---|
| typeMask | int: Bit mask ofTypes to query visibility status.
 Value is either0or a combination of android.view.WindowInsets.Type.STATUS_BARS, android.view.WindowInsets.Type.NAVIGATION_BARS, android.view.WindowInsets.Type.CAPTION_BAR, android.view.WindowInsets.Type.IME, android.view.WindowInsets.Type.SYSTEM_GESTURES, android.view.WindowInsets.Type.MANDATORY_SYSTEM_GESTURES, android.view.WindowInsets.Type.TAPPABLE_ELEMENT, android.view.WindowInsets.Type.DISPLAY_CUTOUT, and android.view.WindowInsets.Type.SYSTEM_OVERLAYS | 
| Returns | |
|---|---|
| boolean | trueif and only if all windows included intypeMaskare currently
         visible on screen. | 
replaceSystemWindowInsets
public WindowInsets replaceSystemWindowInsets (int left, int top, int right, int bottom)
      This method was deprecated
      in API level 29.
    use Builder#Builder(WindowInsets) with
             Builder.setSystemWindowInsets(Insets) instead.
  
Returns a copy of this WindowInsets with selected system window insets replaced with new values.
Note: If the system window insets are already consumed, this method will return them
 unchanged on Q and later. Prior to
 Q, the new values were applied regardless of
 whether they were consumed, and this method returns invalid non-zero consumed insets.
| Parameters | |
|---|---|
| left | int: New left inset in pixels | 
| top | int: New top inset in pixels | 
| right | int: New right inset in pixels | 
| bottom | int: New bottom inset in pixels | 
| Returns | |
|---|---|
| WindowInsets | A modified copy of this WindowInsets
 This value cannot be null. | 
replaceSystemWindowInsets
public WindowInsets replaceSystemWindowInsets (Rect systemWindowInsets)
      This method was deprecated
      in API level 29.
    use Builder#Builder(WindowInsets) with
             Builder.setSystemWindowInsets(Insets) instead.
  
Returns a copy of this WindowInsets with selected system window insets replaced with new values.
Note: If the system window insets are already consumed, this method will return them
 unchanged on Q and later. Prior to
 Q, the new values were applied regardless of
 whether they were consumed, and this method returns invalid non-zero consumed insets.
| Parameters | |
|---|---|
| systemWindowInsets | Rect: New system window insets. Each field is the inset in pixels
                           for that edge | 
| Returns | |
|---|---|
| WindowInsets | A modified copy of this WindowInsets
 This value cannot be null. | 
toString
public String toString ()
Returns a string representation of the object.
| Returns | |
|---|---|
| String | a string representation of the object. | 
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-20 UTC.
