Android 12 Developer Preview is here! Try it out, and give us your feedback!

WindowManager

class WindowManager
kotlin.Any
   ↳ androidx.window.WindowManager

Main interaction point with the WindowManager library. An instance of this class allows polling the current state of the device and display, and registering callbacks for changes in the corresponding states.

Summary

Public constructors
<init>(@NonNull context: Context)

Gets an instance of the class initialized with and connected to the provided Context.

<init>(@NonNull context: Context, @Nullable windowBackend: WindowBackend?)

Gets an instance of the class initialized with and connected to the provided Context.

Public methods
WindowMetrics

Returns the WindowMetrics according to the current system state.

DeviceState

WindowMetrics

Returns the largest WindowMetrics an app may expect in the current system state.

WindowLayoutInfo

Unit
registerDeviceStateChangeCallback(@NonNull executor: Executor, @NonNull callback: Consumer<DeviceState!>)

Unit
registerLayoutChangeCallback(@NonNull executor: Executor, @NonNull callback: Consumer<WindowLayoutInfo!>)

Registers a callback for layout changes of the window of the current visual Context.

Unit

Unit

Unregisters a callback for window layout changes of the window.

Public constructors

<init>

WindowManager(@NonNull context: Context)

Gets an instance of the class initialized with and connected to the provided Context. All methods of this class will return information that is associated with this visual context.

Parameters
context Context: A visual context, such as an Activity or a ContextWrapper around one, to use for initialization.

<init>

WindowManager(
    @NonNull context: Context,
    @Nullable windowBackend: WindowBackend?)

Deprecated: WindowBackend will be a required argument in the next implementation.

Gets an instance of the class initialized with and connected to the provided Context. All methods of this class will return information that is associated with this visual context.

Parameters
context Context: A visual context, such as an Activity or a ContextWrapper around one, to use for initialization.
windowBackend WindowBackend?: Backing server class that will provide information for this instance. Pass a custom WindowBackend implementation for testing.

Public methods

getCurrentWindowMetrics

@NonNull fun getCurrentWindowMetrics(): WindowMetrics

Returns the WindowMetrics according to the current system state.

The metrics describe the size of the area the window would occupy with MATCH_PARENT width and height and any combination of flags that would allow the window to extend behind display cutouts.

The value of this is based on the current windowing state of the system. For example, for activities in multi-window mode, the metrics returned are based on the current bounds that the user has selected for the Activity's window.

getDeviceState

@NonNull fun getDeviceState(): DeviceState

Deprecated: will be removed in the next alpha

Return
DeviceState the current DeviceState if Sidecar is present and an empty info otherwise

getMaximumWindowMetrics

@NonNull fun getMaximumWindowMetrics(): WindowMetrics

Returns the largest WindowMetrics an app may expect in the current system state.

The metrics describe the size of the largest potential area the window might occupy with MATCH_PARENT width and height and any combination of flags that would allow the window to extend behind display cutouts.

The value of this is based on the largest potential windowing state of the system. For example, for activities in multi-window mode the metrics returned are based on what the bounds would be if the user expanded the window to cover the entire screen.

Note that this might still be smaller than the size of the physical display if certain areas of the display are not available to windows created for the associated Context. For example, devices with foldable displays that wrap around the enclosure may split the physical display into different regions, one for the front and one for the back, each acting as different logical displays. In this case getMaximumWindowMetrics() would return the region describing the side of the device the associated context's window is placed.

getWindowLayoutInfo

@NonNull fun getWindowLayoutInfo(): WindowLayoutInfo

Deprecated: will be removed in the next alpha

Return
WindowLayoutInfo the current WindowLayoutInfo when Sidecar is present and an empty info otherwise

registerDeviceStateChangeCallback

fun registerDeviceStateChangeCallback(
    @NonNull