โš™๏ธ Advanced Android Engineering and Emerging Technology

Large-Screen and Foldable Android Experiences

Tablets, foldables, Chromebooks and desktop-style windowing mean your app can run at almost any size. Recent Android versions ignore orientation and resizability restrictions on large screens for apps targeting them, so adapting isn't optional anymore. Here's how to do it well.

โœ๏ธ Yunok Tech ๐Ÿ“… Updated โฑ 3 min read ๐ŸŽฏ Intermediate
On this page
  1. The device landscape
  2. Why it's no longer optional
  3. Canonical layouts
  4. Foldable postures
  5. Continuity across changes
  6. Input: keyboard, mouse, stylus
  7. Multi-window and desktop windowing
  8. Testing
  9. Use cases
  10. Frequently asked questions
  11. Conclusion

Our Adaptive UI in Compose guide covers the layout basics. This article goes further: foldable postures, continuity across configuration changes, input devices, multi-window, and the platform changes that make large-screen support mandatory.

The device landscape

Window sizes your app should handle Compact width phones in portrait, medium width foldables unfolded and small tablets, expanded width large tablets and desktop windows, plus foldable postures like tabletop and book, and free-form resizable windows. Compact Medium / foldable Expanded tablet Desktop windows
Design by available window size, not device type: the same device can produce several sizes.

Why it's no longer optional

From Android 16 (API 36), for apps targeting it, the system ignores manifest restrictions on orientation, resizability and aspect ratio on large screens (smallest width at least 600dp), with a temporary opt-out that is removed in the following version. Combined with Play's target API requirements (new apps and updates must target API 36 from August 31, 2026), most apps must now handle being resized and rotated on tablets and foldables.

Canonical layouts

  • List-detail: side-by-side panes on wide windows (ListDetailPaneScaffold).
  • Supporting pane: main content plus contextual content.
  • Feed: adaptive grids.
  • Navigation: NavigationSuiteScaffold switches between bottom bar, rail and drawer.

Foldable postures

Detect tabletop postureKotlin
@Composable
fun rememberIsTabletop(): Boolean {
    val context = LocalContext.current
    val layoutInfo by remember(context) {
        WindowInfoTracker.getOrCreate(context).windowLayoutInfo(context as Activity)
    }.collectAsStateWithLifecycle(initialValue = null)

    val fold = layoutInfo?.displayFeatures?.filterIsInstance<FoldingFeature>()?.firstOrNull()
    return fold?.state == FoldingFeature.State.HALF_OPENED &&
           fold.orientation == FoldingFeature.Orientation.HORIZONTAL
}
// Tabletop: e.g. video on the top half, controls on the bottom half.

The Material 3 adaptive library also exposes posture information through currentWindowAdaptiveInfo(), avoiding manual WindowManager plumbing in many cases.

Continuity across changes

Folding, unfolding, resizing and rotating trigger configuration changes. Users expect to keep their place:

  • Keep state in ViewModels and rememberSaveable, not in composables tied to a layout.
  • Preserve scroll position and selection when switching between one and two panes.
  • Don't restart video or lose form input on fold or unfold.

Input: keyboard, mouse, stylus

Keyboard shortcut and hoverKotlin
Modifier
    .onPreviewKeyEvent { event ->
        if (event.type == KeyEventType.KeyDown && event.isCtrlPressed && event.key == Key.N) {
            onNewItem(); true
        } else false
    }
    .pointerHoverIcon(PointerIcon.Hand)   // mouse cursor feedback
  • Support Tab navigation and visible focus indicators.
  • Support right-click context menus and drag and drop where it makes sense.
  • Support stylus input for drawing and handwriting apps.

Multi-window and desktop windowing

  • Your app can be split-screen, free-form or in a desktop window. Handle any size.
  • Don't pause playback in onPause when visible in multi-window. Use onStop.
  • Multi-instance and opening content in a new window can suit document-style apps.

Testing

  • Use resizable and foldable emulators, and the desktop emulator.
  • Use Compose previews with multiple device specs.
  • Check the large screen app quality checklist.

Use cases

Email or chat

List-detail on tablets, with keyboard shortcuts for power users.

Video

Tabletop mode with controls below the fold.

Notes

Stylus input, drag and drop, multi-window.

Frequently asked questions

Can I lock my app to portrait?

On phones, yes. On large screens, apps targeting Android 16+ have orientation locks ignored (except for some categories like games). Design to adapt.

Do I need separate tablet layouts?

Not separate apps. Use adaptive layouts that respond to window size classes.

Conclusion

Large-screen support means adaptive layouts by window size, posture awareness on foldables, continuity across changes, full keyboard, mouse and stylus support, and correct multi-window behaviour, which is now required in practice by platform changes.

Next step: explore AI-ready app capabilities with AppFunctions and the Android AI Ecosystem.

Official references

๐Ÿ“ฑ Apps built by Yunok Tech

Real Android apps on Google Play, free to download.

See all our apps โ†’

Ready to build real Android applications?

Jetpack Compose clicks once you build real screens with real state. Practise modern Android UI development on projects that go beyond toy examples.

Move beyond theory and strengthen your Android development skills with Yunoktech's Android course. Learn core concepts, practical implementation, modern Android development techniques, and the reasoning behind building maintainable applications.

Explore the Android course and take your next step as an Android developer.

Share: LinkedIn X / Twitter WhatsApp