Split Screen — nó là gì, chế độ hai ứng dụng trên màn hình

Tác giả: IT Sectr Đã đăng: 2026-06-08 Thời gian đọc: 9 phút

Split Screen là chế độ màn hình chia đôi cho phép chạy hai ứng dụng cùng lúc cạnh nhau, chia sẻ không gian có sẵn. Người dùng có thể kéo thanh phân cách giữa các cửa sổ, thay đổi tỷ lệ và nhanh chóng chuyển đổi ứng dụng ở mỗi nửa. Theo Android Developers (2025), Split Screen là một phần của chương trình tương thích bắt buộc cho tất cả thiết bị có chiều rộng màn hình từ 600 dp trở lên và được hỗ trợ trên cả Android và iPadOS.

Những điểm chính

  • Split Screen — hai ứng dụng trên màn hình với thanh phân cách có thể kéo.
  • Android Split Screen — hoạt động từ Android 7.0, kích hoạt qua Overview.
  • iPad Split View — chế độ tương tự trên iPadOS với ba vị trí thanh phân cách.
  • Thích ứng — ứng dụng phải xử lý thay đổi kích thước cửa sổ và giữ trạng thái.
  • Chiều rộng tối thiểu — cửa sổ ứng dụng trong Split Screen có thể thu nhỏ xuống 220 dp.

Split Screen là gì?

Split Screen là chế độ đa nhiệm trong đó màn hình được chia thành hai khu vực chức năng, mỗi khu vực chứa một ứng dụng riêng biệt. Không giống như Slide Over hay PiP, nơi một cửa sổ nổi trên cửa sổ khác, Split Screen cho cả hai ứng dụng trạng thái ngang nhau — mỗi ứng dụng nhận một nửa màn hình.

Chế độ này có sẵn trên Android (từ 7.0 Nougat), iPadOS (từ iOS 9), Windows (Snap Assist) và một số môi trường máy tính để bàn Linux. Trong phát triển di động, Split Screen được coi là kịch bản bắt buộc cho máy tính bảng và thiết bị gập, nơi đa nhiệm là lợi thế chính của nền tảng.

Người dùng kích hoạt Split Screen bằng cách nhấn giữ biểu tượng ứng dụng trong Overview (Android) hoặc kéo từ Dock (iPad). Sau khi kích hoạt, màn hình được chia và người dùng chọn ứng dụng thứ hai từ danh sách gần đây hoặc từ Dock.

Split Screen trên Android: cách hoạt động

Trên Android, Split Screen được quản lý qua Window Manager. Khi người dùng kích hoạt chế độ, hệ thống tạo hai StackView — một cho mỗi Activity. Thanh phân cách giữa các cửa sổ được hệ thống hiển thị, với độ dày tối thiểu 1 dp, có thể tăng lên trên các thiết bị có Gesture Navigation.

Mỗi ứng dụng nhận được thông báo thay đổi kích thước qua onConfigurationChanged. Nếu Activity không xử lý sự kiện này, nó sẽ bị hủy và tạo lại. Đối với video và trò chơi, điều này rất quan trọng: tạo lại Activity sẽ đặt lại vị trí phát lại hoặc trạng thái trò chơi.

Tỷ lệ cửa sổ có thể thay đổi bằng cách kéo thanh phân cách. Android hỗ trợ ba trạng thái: 50/50, 70/30 và 30/70. Người dùng cũng có thể hoán đổi ứng dụng, điều này kích hoạt khởi động lại Activity nếu configChanges không được xử lý.

Split View trên iPadOS: tính năng

Split View là triển khai Split Screen trên iPadOS. Không giống như Android, nơi việc chia màn hình luôn bắt đầu từ trung tâm, iPadOS cung cấp cho người dùng ba vị trí thanh phân cách: 50/50, 25/75 và 75/25. Chế độ được kích hoạt qua Dock hoặc App Exposé.

Trên iPadOS, một ứng dụng trong Split View có thể được thu gọn thành Slide Over — một cửa sổ nổi. Đây là tính năng độc đáo của Apple: người dùng có thể chuyển đổi một trong các cửa sổ từ Split View sang Slide Over và ngược lại mà không mất dữ liệu. Nhà phát triển phải hỗ trợ cả ba chế độ: toàn màn hình, Split View và Slide Over.

Để hỗ trợ Split View trên iOS, ứng dụng phải triển khai bố cục thích ứng qua Size Classes và scene (UIScene). Từ iOS 13, Apple yêu cầu ứng dụng xử lý chính xác chế độ đa cửa sổ — nếu không hệ thống có thể buộc khởi động lại Activity trên iPad.

Xử lý thay đổi cấu hình

Khi vào và ra khỏi Split Screen, các thay đổi cấu hình xảy ra: chiều rộng, chiều cao và tỷ lệ khung hình của cửa sổ thay đổi. Hành vi tiêu chuẩn của Android là tạo lại Activity (onDestroy + onCreate). Để tránh điều này, hãy chỉ định android:configChanges trong tệp kê khai.

Khi tạo lại, Activity mất trạng thái View và ViewModel. Sử dụng SavedStateHandle để lưu trạng thái giao diện người dùng hoặc ViewModel có phạm vi Application. Một giải pháp thay thế là onRetainNonConfigurationInstance() cho các đối tượng phức tạp.

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

Trên iPadOS, cơ chế tương đương là traitCollectionDidChange hoặc viewWillTransitionToSize. Nhà phát triển nhận được kích thước vùng chứa mới và phải xây dựng lại bố cục theo Size Class.

Hỗ trợ Split Screen trong mã

Trên Android, hỗ trợ Split Screen bắt đầu bằng cách đặt cờ resizeableActivity trong tệp kê khai. Sau đó, Activity có thể thu nhỏ xuống chiều rộng tối thiểu 220 dp. Nếu ứng dụng không hỗ trợ màn hình hẹp như vậy, hãy chỉ định android:minWidth trong tệp kê khai.

Đối với iPad, nhà phát triển chỉ cần hỗ trợ Size Classes và sử dụng Auto Layout hoặc SwiftUI. SwiftUI tự động điều chỉnh giao diện khi vào Split View — ví dụ: NavigationSplitView chuyển đổi giữa chế độ xếp chồng và cạnh nhau.

Nên kiểm tra Split Screen trên thiết bị thực hoặc trong trình giả lập với cài đặt cửa sổ đa kích thước. Trình giả lập Android cho phép khởi chạy bất kỳ số lượng cửa sổ nào qua ADB và kiểm tra hành vi của ứng dụng ở các tỷ lệ khác nhau.

Nền tảngCơ chế thích ứngChiều rộng tối thiểu
AndroidresizeableActivity + configChanges220 dp
iPadOSSize Classes + UIScene320 pt (chính)

Lỗi thường gặp khi triển khai

Sai lầm đầu tiên là bỏ qua việc bảo toàn trạng thái. Trong Split Screen, Activity có thể được tạo lại bất kỳ lúc nào mà không cần hành động của người dùng. Nếu dữ liệu chỉ được lưu trong các biến cục bộ, nó sẽ bị mất. Sử dụng ViewModel cho dữ liệu màn hình và SavedStateHandle cho các trạng thái quan trọng.

Sai lầm thứ hai là ẩn nội dung khi cửa sổ thu nhỏ. Một số nhà phát triển ẩn các phần tử khi chiều rộng giảm xuống dưới một ngưỡng nhất định. Cách tiếp cận đúng là xây dựng lại bố cục: trên màn hình hẹp, chỉ hiển thị nội dung quan trọng nhất thay vì ẩn mọi thứ. Window Size Class cung cấp các điểm ngắt có sẵn cho logic này.

Sai lầm thứ ba là không xử lý onWindowFocusChanged. Trong Split Screen, tiêu điểm có thể chuyển đổi giữa các cửa sổ mà không đóng ứng dụng. Bỏ qua sự kiện này khiến trình phát video dừng lại khi người dùng chỉ nhìn sang cửa sổ bên cạnh.

Các câu hỏi thường gặp

Làm thế nào để khởi chạy ứng dụng trong Split Screen bằng mã?

Sử dụng Intent với FLAG_ACTIVITY_LAUNCH_ADJACENT. Nếu thiết bị đang ở chế độ Split Screen, ứng dụng sẽ mở trong cửa sổ bên cạnh. Nếu thiết bị ở chế độ toàn màn hình, cờ sẽ bị bỏ qua.

Vòng đời Activity có khác trong Split Screen không?

Có. Activity vẫn hiển thị nhưng mất tiêu điểm — onPause được gọi, nhưng không gọi onStop. Khi thoát Split Screen, onMultiWindowModeChanged được gọi, sau đó là onResume.

Làm thế nào để kiểm tra chiều rộng cửa sổ trong Split Screen?

Sử dụng WindowManager.getCurrentWindowMetrics() hoặc Jetpack WindowManager. Không sử dụng Display.getSize() — nó trả về toàn bộ màn hình, không phải cửa sổ ứng dụng hiện tại.

Split Screen có được hỗ trợ trên thiết bị gập không?

Có. Trên thiết bị ở trạng thái mở, Split Screen thường là chế độ mặc định. Samsung Galaxy Z Fold ở chế độ ngang cung cấp Split Screen với ba ứng dụng cùng lúc.

Làm thế nào để tắt Split Screen cho một Activity cụ thể?

Đặt android:resizeableActivity="false" cho Activity đó. Đối với API 24+, cờ này tắt Split Screen. Trên Android 12L+, sử dụng android:minWidth và android:minHeight.

Tổng kết

  • Split Screen — chế độ hai ứng dụng trên màn hình, có sẵn trên Android và iPadOS.
  • Android — hoạt động qua resizeableActivity + onConfigurationChanged.
  • iPadOS — Split View với ba vị trí thanh phân cách, có thể chuyển thành Slide Over.
  • Thích ứng — xử lý thay đổi kích thước qua configChanges hoặc tạo lại.
  • Bảo toàn trạng thái — ViewModel và SavedStateHandle là bắt buộc cho Split Screen.
  • Kiểm tra — chiều rộng tối thiểu 220 dp trên Android, 320 pt trên iPad.
  • Kết luận — Split Screen là chế độ bắt buộc cho máy tính bảng và thiết bị gập, yêu cầu quản lý vòng đời và bố cục thích ứng.

Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay

IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.

Thảo luận dự án

Đọc thêm