Android Developers Blog
The latest Android and Google Play news for app and game developers.
🔍
Platform Android Studio Google Play Jetpack Kotlin Docs News

10 October 2025

Jetpack WindowManager 1.5 is stable


Link copied to clipboard
Jetpack WindowManager 1.5 is stable

We're excited to announce that Jetpack WindowManager 1.5.0 is now stable!

This release builds on the strong foundation of adaptability in WindowManager, making it even easier to create polished, adaptive UIs that look great on all screen sizes. As the Android ecosystem continues to grow, users are engaging with apps on a wider variety of devices than ever before: from phones and foldables to tablets, connected displays, Chromebooks, and even car displays in parked mode.

WindowManager 1.5 focuses on providing better tools for this diverse device environment.

What's new in WindowManager 1.5

This stable release introduces new breakpoints for very large screens, enhances the activity embedding API, and provides more flexibility for calculating window metrics.

New window size classes: Large and Extra-large

The biggest update in 1.5 is the addition of two new width window size classes: Large and Extra-large.

Window size classes are our official, opinionated set of viewport breakpoints that help you design and develop adaptive layouts. With 1.5, we're extending this guidance for screens that go beyond typical tablets.

Here are the new width breakpoints:

  • Large: For widths between 1200dp and 1600dp

  • Extra-large: For widths ≥1600dp

Jetpack WindowManager 1.5 is stable

The different window size classes based on display width. 

Why are these important?

Starting with Android 16 QPR1 Beta 2, Android supports connected displays, enabling users to attach an external display to their device and transform it into a desktop-like tool with a large screen.

Phone connected to an external display, with a desktop session on the external display. 

With this new feature available, opinionated guidance to include bigger displays is crucial. 

On these very large surfaces, simply scaling up a tablet's Expanded layout isn't always the best user experience. An email client, for example, might comfortably show two panes (a mailbox and a message) in the Expanded window size class. But on an Extra-large desktop monitor, the email client could elegantly display three or even four panes—perhaps a mailbox, a message list, the full message content, and a calendar/tasks panel, all at once.

By providing official breakpoints for very large display sizes, WindowManager 1.5 gives you a clear signal to introduce layouts specifically designed for a productive, information-dense desktop experience.

The window size classes can be calculated using computeWindowSizeClass(), which is an androidx.window.core.layout library extension function that extends the Set<WindowSizeClass> type. 

To include the new window size classes in your project, simply call the function from the WindowSizeClass.BREAKPOINTS_V2 set instead of WindowSizeClass.BREAKPOINTS_V1:

val currentWindowMetrics =

    WindowMetricsCalculator.getOrCreate()

    .computeCurrentWindowMetrics(LocalContext.current)

val sizeClass = WindowSizeClass.BREAKPOINTS_V2

    .computeWindowSizeClass(currentWindowMetrics)


Then apply the correct layout when you’re sure your app has at least that much space:

if(sizeClass.isWidthAtLeastBreakpoint(

    WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){

    ...

// window is at least 1200 dp wide

}

Adaptive libraries

The Compose Material 3 Adaptive library helps you create adaptive UIs that adapt themselves automatically according to the current window configurations like window size classes or device postures. 

The good news is that the library is already up to date with the new breakpoints! Starting from version 1.2 (now in Release Candidate stage), the default pane scaffold directive functions support Large and Extra-large window width size classes.

You only need to opt-in by declaring in your Gradle build file that you want to use the new breakpoints:

currentWindowAdaptiveInfo(

    supportLargeAndXLargeWidth = true)

Additional improvements

  • Activity embedding — auto-save and restore: WindowManager can now automatically save and restore the state of your activity embedding splits. This helps preserve the user's layout across process recreation, leading to a more stable and consistent experience. Developers don’t have to save and restore the state manually anymore, but they can simply opt-in auto by setting the EmbeddingConfiguration#isAutoSaveEmbeddingState property.

  • Expanded WindowMetrics: You can now calculate WindowMetrics from an Application context, not just an Activity context. This provides more flexibility for accessing window information from different parts of your app.

How to get started

To start using the new Large and Extra-large size classes and other 1.5 features in your Android projects, update your app dependencies in build.gradle.kts to the latest stable version:

dependencies {

    implementation("androidx.window:window:1.5.0"

    // or, if you're using the WindowManager testing library:

    testImplementation("androidx.window:window-testing:1.5.0")

}


WindowManager 1.5 is another step forward for creating fully adaptive apps that run across Android form factors. Check out the official release notes for a complete list of changes and bug fixes.

Happy coding!