Large screens expand the user experience. The large screens of tablets, foldables, and Chrome OS devices accommodate detailed content, make multitasking and drag and drop more productive, and enable user interfaces not possible on small screens.
Design for all screen sizes
To support screens large and small, design responsive/adaptive layouts that provide an optimal user experience on devices of all kinds.
Start by familiarizing yourself with the following:
Window size classes
Window size classes are a set of opinionated viewport breakpoints that help you implement responsive/adaptive design. Use window size classes to categorize the display area available to your app as compact, medium, or expanded, then apply an optimized layout.
Adaptive app navigation
On small screens, a bottom navigation bar works well, but on large screens a navigation rail or navigation drawer makes better use of the increased screen space. Adapt your app navigation to changes in screen size.
Control configuration changes and continuity
Configuration changes such as device rotations, window size changes in multi-window mode, and folding or unfolding a foldable device can cause users to lose context—or even worse, data.
Make sure your app retains or restores its state during configuration changes and resumes ongoing processes such as media playback.
See the following:
Large screens facilitate multitasking. Android devices enable multitasking through the following special display modes:
Enable your app to run in split-screen mode or free-form mode alongside other apps.
When your app is in multi-window mode, use the
WindowMetrics API to accurately determine the size of the app window or the size of the device screen.
See Multi-window support.
As of Android 10 (API level 29), unfocused activities remain in the RESUMED state when a device is in multi-window mode.
Ensure your app supports multi-resume by continuing ongoing processes such as media playback or file downloads when the app is not the top focused app. Your app must also handle the loss of exclusive resources such as cameras and microphones.
If your app plays video content, implement picture-in-picture mode so your app can continue video playback while the user interacts with another app.
Run two or more instances of your app at the same time with multi-instance support.
Add drag and drop
Large screens provide plenty of space for drag and drop interactions—within an app or, on Android 7.0 (API level 24) and higher, between apps in multi-window mode.
Add drag and drop capabilities to your app with the Android drag and drop framework.
See Drag and drop.
Accept input from external devices
Users often connect an external keyboard to tablets. Chromebooks come with built-in keyboards and trackpads.
Enable your app to support external keyboards, mice, and trackpads. Include support for keyboard shortcuts and mouse and trackpad zoom and "right-click" capabilities.
Build a better, more inclusive app by supporting accessibility (a11y) features such as Tab and arrow key keyboard navigation.
Check camera preview
If your app includes a camera preview, check the preview for orientation and aspect ratio on large screens. Large screen foldables can have a landscape aspect ratio even though the device is in portrait orientation. Multi-window mode (which large screens facilitate) can display apps in portrait orientation in a resizable window when the device is landscape.
See the following:
Manage media projection
A media projection creates a virtual display based on the bounds of the real (source) display. The real display is the entire device screen, even if the device is in multi-window mode and the app creating the media projection is running in a window.
To get the correct bounds for your large screen media projection, use the
WindowMetrics API introduced in Android 11 (API level 30) or, for compatibility down to API level 14, the Jetpack WindowManager
Extend your app with activity embedding
Take advantage of the extra display area of large screens with activity embedding. Convert your activity-based app to multi-pane layouts by creating an XML configuration file or by making Jetpack WindowManager API calls. Display the app's activities side by side or stacked to create what looks and feels like a whole new app.
See Activity embedding.
Build for foldables
Large screen foldable devices are like a phone and tablet in one. Folding features such as tabletop posture and book posture offer new user experience possibilities. Differentiate your app by supporting the unique features of foldable devices.
See the following:
Follow the quality guidelines
Large screen app quality guidelines have been developed to help you make your app the best it can be on large screens. The guidelines are a comprehensive set of quality requirements for most types of Android apps. Follow the guidelines to create an app that works great on phones, tablets, foldables, and Chrome OS devices.
- Building for large screens video collection