Split Screen — что это, режим двух приложений на экране

Автор: IT Sectr Опубликовано: 2026-06-08 Время чтения: 9 мин

Split Screen — это режим разделённого экрана, который позволяет одновременно запускать два приложения рядом, разделяя доступное пространство. Пользователь может перетаскивать разделитель между окнами, менять пропорции и быстро переключать приложения в каждой половине. По данным Android Developers (2025), Split Screen входит в обязательную программу совместимости для всех устройств с шириной экрана от 600 dp и поддерживается как на Android, так и на iPadOS.

Главное

  • Split Screen — два приложения на экране с перетаскиваемым разделителем.
  • Android Split Screen — работает с Android 7.0, активируется через Overview.
  • iPad Split View — аналогичный режим в iPadOS с тремя позициями разделителя.
  • Адаптация — приложение должно обрабатывать изменение размера окна и сохранять состояние.
  • Минимальная ширина — окно приложения в Split Screen может уменьшаться до 220 dp.

Что такое Split Screen?

Split Screen — это режим многозадачности, при котором экран делится на две функциональные области, каждая из которых содержит отдельное приложение. В отличие от Slide Over или PiP, где одно окно плавает поверх другого, Split Screen даёт обоим приложениям равный статус — каждое получает свою половину экрана.

Режим доступен на Android (начиная с 7.0 Nougat), iPadOS (начиная с iOS 9), Windows (Snap Assist) и некоторых десктопных окружениях Linux. В мобильной разработке Split Screen считается обязательным сценарием для планшетов и складных устройств, где многозадачность — ключевое преимущество платформы.

Пользователь активирует Split Screen через долгое нажатие на иконку приложения в Overview (Android) или через Drag from Dock (iPad). После активации экран разделяется, и пользователь выбирает второе приложение из списка недавних или из Dock.

Split Screen на Android: как работает

В Android Split Screen управляется через Window Manager. Когда пользователь активирует режим, система создаёт два StackView — по одному на каждую Activity. Разделитель между окнами отрисовывается системой, его минимальная толщина — 1 dp, но может быть увеличена на девайсах с Gesture Navigation.

Каждое приложение получает уведомление об изменении размера через onConfigurationChanged. Если Activity не обрабатывает это событие — она уничтожается и создаётся заново. Для видео и игр это критично: пересоздание Activity сбрасывает позицию воспроизведения или состояние игры.

Пропорции окон можно менять перетаскиванием разделителя. Android поддерживает три состояния: 50/50, 70/30 и 30/70. Пользователь также может обменять приложения местами — это вызывает перезапуск Activity, если не обрабатывать configChanges.

Split View на iPadOS: особенности

Split View — это реализация Split Screen в iPadOS. В отличие от Android, где деление экрана всегда идёт от центра, iPadOS предлагает пользователю три позиции разделителя: 50/50, 25/75 и 75/25. Режим активируется через Dock или App Exposé.

В iPadOS приложение в Split View может быть свёрнуто в Slide Over — плавающее окно. Это уникальная фича Apple: пользователь может трансформировать одно из окон из Split View в Slide Over и обратно без потери данных. Разработчик должен поддерживать все три режима: full screen, Split View и Slide Over.

Для поддержки Split View в iOS приложение должно реализовать адаптивные лейауты через Size Classes и сцену (UIScene). С iOS 13 Apple требует, чтобы приложение корректно обрабатывало режим мультиоконности — иначе система может принудительно перезапускать Activity на iPad.

Обработка изменений конфигурации

При входе в Split Screen и выходе из него происходят изменения конфигурации: меняется ширина, высота и соотношение сторон окна. Стандартное поведение Android — пересоздание Activity (onDestroy + onCreate). Чтобы избежать этого, укажите android:configChanges в манифесте.

При пересоздании Activity теряет состояние View и ViewModel. Используйте SavedStateHandle для сохранения UI-состояния или ViewModel с ограничением скоупа до Application. Альтернатива — onRetainNonConfigurationInstance() для сложных объектов.

kotlin
@Override
fun onConfigurationChanged(newConfig: Configuration) {
    super.onConfigurationChanged(newConfig)
    val isSplitScreen = isInMultiWindowMode()
    if (isSplitScreen) {
        adjustLayoutForSplitScreen()
    }
}

В iPadOS аналогичный механизм — traitCollectionDidChange или viewWillTransitionToSize. Разработчик получает новый размер контейнера и должен перестроить лейаут в соответствии с Size Class.

Поддержка Split Screen в коде

На Android поддержка Split Screen начинается с установки флага resizeableActivity в манифесте. После этого Activity может уменьшаться до минимальной ширины 220 dp. Если приложение не поддерживает такой узкий экран — укажите android:minWidth в манифесте.

Для iPad разработчику достаточно поддерживать Size Classes и использовать Auto Layout или SwiftUI. SwiftUI автоматически адаптирует интерфейс при переходе в Split View — например, NavigationSplitView переключается между stacked и side-by-side режимами.

Рекомендуется тестировать Split Screen на реальных устройствах или в эмуляторе с настройкой multi-resizable window. Android Emulator позволяет запустить произвольное количество окон через ADB и проверить поведение приложения в разных пропорциях.

ПлатформаМеханизм адаптацииМинимальная ширина
AndroidresizeableActivity + configChanges220 dp
iPadOSSize Classes + UIScene320 pt (primary)

Типовые ошибки при реализации

Первая ошибка — игнорировать сохранение состояния. В Split Screen Activity может быть пересоздана в любой момент без участия пользователя. Если данные хранятся только в локальных переменных — они потеряются. Используйте ViewModel для экранных данных и SavedStateHandle для критических состояний.

Вторая ошибка — скрывать контент при уменьшении окна. Некоторые разработчики прячут элементы, когда ширина становится меньше определённого порога. Правильный подход — перестраивать лейаут: на узком экране показывать только самое важное, а не скрывать всё. Window Size Class даёт готовые breakpoints для этой логики.

Третья ошибка — не обрабатывать onWindowFocusChanged. В Split Screen фокус может переключаться между окнами без закрытия приложения. Игнорирование этого события приводит к тому, что видеоплеер останавливается, когда пользователь просто перевёл взгляд на соседнее окно.

Часто задаваемые вопросы

Как программно запустить приложение в Split Screen?

Используйте Intent с FLAG_ACTIVITY_LAUNCH_ADJACENT. Если устройство находится в Split Screen, приложение откроется в соседнем окне. Если устройство в полноэкранном режиме — флаг игнорируется.

Отличается ли жизненный цикл Activity в Split Screen?

Да. Activity остаётся видимой, но теряет фокус — вызывается onPause, но не onStop. При выходе из Split Screen вызывается onMultiWindowModeChanged, затем onResume.

Как проверить ширину окна в Split Screen?

Используйте WindowManager.getCurrentWindowMetrics() или Jetpack WindowManager. Не используйте Display.getSize() — он возвращает полный экран, а не текущее окно приложения.

Поддерживается ли Split Screen на складных устройствах?

Да. На устройстве в разложенном состоянии Split Screen часто является режимом по умолчанию. Samsung Galaxy Z Fold в landscape-режиме предлагает Split Screen с тремя приложениями одновременно.

Как отключить Split Screen для конкретного Activity?

Установите android:resizeableActivity="false" для этого Activity. Для API 24+ флаг запрещает Split Screen. На Android 12L+ используйте android:minWidth и android:minHeight.

Итоги

  • Split Screen — режим двух приложений на экране, доступный на Android и iPadOS.
  • Android — работает через resizeableActivity + onConfigurationChanged.
  • iPadOS — Split View с тремя позициями разделителя, трансформация в Slide Over.
  • Адаптация — обработка изменения размера через configChanges или пересоздание.
  • Сохранение состояния — ViewModel и SavedStateHandle обязательны для Split Screen.
  • Тестирование — минимальная ширина 220 dp на Android, 320 pt на iPad.
  • Заключение — Split Screen — обязательный режим для планшетов и складных устройств, который требует проработки жизненного цикла и адаптивных лейаутов.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

Читайте также