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) або через перетягування з 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 і назад без втрати даних. Розробник повинен підтримувати всі три режими: повний екран, 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 (основна)

Типові помилки при реалізації

Перша помилка — ігнорувати збереження стану. У 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 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

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