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 ใน manifest

เมื่อสร้างใหม่ 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 ใน manifest หลังจากนั้น Activity สามารถหดเหลือความกว้างขั้นต่ำ 220 dp หากแอพไม่รองรับหน้าจอแคบเช่นนี้ ให้ระบุ android:minWidth ใน manifest

สำหรับ iPad นักพัฒนาเพียงแค่ต้องรองรับ Size Classes และใช้ Auto Layout หรือ SwiftUI SwiftUI จะปรับอินเทอร์เฟซโดยอัตโนมัติเมื่อเข้าสู่ Split View — ตัวอย่างเช่น NavigationSplitView สลับระหว่างโหมดซ้อนกันและเคียงข้างกัน

แนะนำให้ทดสอบ Split Screen บนอุปกรณ์จริงหรือในอีมูเลเตอร์ที่มีการตั้งค่าหน้าต่างแบบปรับขนาดได้หลายขนาด Android Emulator อนุญาตให้เปิดหน้าต่างจำนวนเท่าใดก็ได้ผ่าน ADB และตรวจสอบพฤติกรรมของแอพในสัดส่วนต่างๆ

แพลตฟอร์มกลไกการปรับตัวความกว้างขั้นต่ำ
AndroidresizeableActivity + configChanges220 dp
iPadOSSize Classes + UIScene320 pt (หลัก)

ข้อผิดพลาดทั่วไปในการใช้งาน

ข้อผิดพลาดแรกคือการละเลยการรักษาสถานะ ใน Split Screen Activity สามารถถูกสร้างใหม่ได้ทุกเมื่อโดยไม่ต้องมีการกระทำของผู้ใช้ หากข้อมูลถูกเก็บไว้ในตัวแปรท้องถิ่นเท่านั้น ข้อมูลจะสูญหาย ใช้ ViewModel สำหรับข้อมูลบนหน้าจอและ SavedStateHandle สำหรับสถานะที่สำคัญ

ข้อผิดพลาดที่สองคือการซ่อนเนื้อหาเมื่อหน้าต่างหด变小 นักพัฒนาบางคนซ่อนองค์ประกอบเมื่อความกว้างลดลงต่ำกว่าเกณฑ์ที่กำหนด วิธีการที่ถูกต้องคือการสร้างเลย์เอาต์ใหม่: บนหน้าจอแคบ ให้แสดงเฉพาะสิ่งที่สำคัญที่สุดแทนที่จะซ่อนทุกอย่าง Window Size Class มีจุดแบ่งที่พร้อมใช้งานสำหรับตรรกะนี้

ข้อผิดพลาดที่สามคือไม่จัดการ onWindowFocusChanged ใน Split Screen โฟกัสสามารถสลับระหว่างหน้าต่างได้โดยไม่ต้องปิดแอพ การละเลยเหตุการณ์นี้ทำให้เครื่องเล่นวิดีโอหยุดเมื่อผู้ใช้เพียงแค่มองไปที่หน้าต่างข้างเคียง

คำถามที่พบบ่อย

จะเปิดแอพใน Split Screen ด้วยโปรแกรมได้อย่างไร?

ใช้ Intent กับ FLAG_ACTIVITY_LAUNCH_ADJACENT หากอุปกรณ์อยู่ในโหมด Split Screen แอพจะเปิดในหน้าต่างที่อยู่ติดกัน หากอุปกรณ์อยู่ในโหมดเต็มหน้าจอ แฟล็กจะถูก ignored

วงจรชีวิตของ 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 ในโหมดแนวนอนเสนอ 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 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม