หน้าต่างเดสก์ท็อปช่วยให้ผู้ใช้เรียกใช้แอปหลายแอปพร้อมกันในหน้าต่างแอปที่ปรับขนาดได้เพื่อประสบการณ์การใช้งานที่หลากหลายเหมือนบนเดสก์ท็อป
ในรูปที่ 1 คุณจะเห็นการจัดระเบียบหน้าจอที่เปิดใช้การแบ่งหน้าจอของเดสก์ท็อป สิ่งที่ควรทราบ
- ผู้ใช้สามารถเรียกใช้แอปหลายแอปพร้อมกันได้
- แถบงานอยู่ในตำแหน่งคงที่ที่ด้านล่างของจอแสดงผลซึ่งแสดงแอปที่ทำงานอยู่ ผู้ใช้สามารถปักหมุดแอปเพื่อการเข้าถึงด่วนได้
- แถบส่วนหัวแบบใหม่ซึ่งปรับแต่งได้จะตกแต่งด้านบนของหน้าต่างแต่ละบานด้วยการควบคุมต่างๆ เช่น ย่อและขยาย
โดยค่าเริ่มต้น แอปจะเปิดแบบเต็มหน้าจอบนแท็บเล็ต Android หากต้องการเปิดแอปในหน้าต่างเดสก์ท็อป ให้กดแฮนเดิลหน้าต่างค้างไว้ที่ ที่ด้านบนของหน้าจอ แล้วลากแฮนเดิลภายใน UI ดังที่แสดงในรูปที่ 2
เมื่อแอปหนึ่งเปิดอยู่ในโหมดหน้าต่างเดสก์ท็อป แอปอื่นๆ ก็จะเปิดในหน้าต่างเดสก์ท็อปด้วย
นอกจากนี้ ผู้ใช้ยังเรียกใช้การแบ่งหน้าจอเดสก์ท็อปจากเมนูที่ปรากฏใต้แถบแฮนเดิลของหน้าต่างได้เมื่อแตะหรือคลิกแถบแฮนเดิล หรือใช้แป้นพิมพ์ลัด แป้น Meta (Windows, Command หรือ Search) + Ctrl + Down
ผู้ใช้ออกจากโหมดหน้าต่างเดสก์ท็อปได้โดยปิดหน้าต่างที่ใช้งานอยู่ทั้งหมด หรือจับที่จับหน้าต่างที่ด้านบนของหน้าต่างเดสก์ท็อปแล้วลากแอปไปไว้ที่ด้านบนของหน้าจอ แป้นพิมพ์ลัด Meta + H จะออกจากโหมดหน้าต่างเดสก์ท็อปและเปิดแอปแบบเต็มหน้าจออีกครั้งด้วย
หากต้องการกลับไปใช้โหมดหน้าต่างเดสก์ท็อป ให้แตะหรือคลิกการ์ดพื้นที่ทำงานบนเดสก์ท็อปในหน้าจอ "ล่าสุด"
การปรับขนาดได้และโหมดความเข้ากันได้
ในการแสดงผลแบบหน้าต่างบนเดสก์ท็อป แอปที่มีการวางแนวที่ล็อกไว้จะปรับขนาดได้อย่างอิสระ ซึ่งหมายความว่าแม้ว่ากิจกรรม ล็อกเป็นแนวตั้ง ผู้ใช้ยังคงปรับขนาดแอป เป็นหน้าต่างที่มีการวางแนวแบบแนวนอนได้
แอปที่ได้รับการประกาศว่าปรับขนาดไม่ได้ (กล่าวคือ
resizableActivity = false
)
ให้ปรับ UI ของตนขณะที่คงสัดส่วนภาพเดิมไว้
แอปกล้องที่ล็อกการวางแนวหรือประกาศว่าแบบปรับขนาดไม่ได้จะมี ช่องมองภาพของกล้องเป็นสิ่งพิเศษ นั่นคือ หน้าต่างสามารถปรับขนาดได้ทั้งหมด แต่ช่องมองภาพจะคงสัดส่วนภาพเดิมไว้ สมมติว่าแอป ทำงานในแนวตั้งหรือแนวนอนเสมอ ฮาร์ดโค้ดของแอป หรือทำให้ สมมติฐานที่นําไปสู่การคำนวณตัวอย่างหรือรูปภาพที่บันทึกไม่ถูกต้อง การวางแนวหรืออัตราส่วนกว้างยาวที่ทำให้รูปภาพยืดออก ตะแคงข้าง หรือกลับหัว
จนกว่าแอปจะพร้อมใช้งานช่องมองภาพของกล้องที่ปรับเปลี่ยนตามอุปกรณ์โดยสมบูรณ์ การปฏิบัติเป็นพิเศษ ช่วยให้ผู้ใช้ได้รับประสบการณ์การใช้งานระดับพื้นฐานที่ช่วยลด อาจสร้างผลกระทบจากสมมติฐานที่ผิดพลาดได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับโหมดความเข้ากันได้สำหรับแอปกล้องได้ที่ โหมดความเข้ากันได้ของอุปกรณ์
ส่วนหัวที่ฝังที่กำหนดเองได้
แอปทั้งหมดที่ทำงานในหน้าต่างเดสก์ท็อปจะมีแถบส่วนหัว แม้ใน
โหมดใหญ่พิเศษ
ตรวจสอบว่าเนื้อหาของแอปไม่ได้ถูกบดบังด้วยแถบส่วนหัว
แถบส่วนหัวจะเป็นชนิดของแถบคำบรรยายภาพดังนี้
androidx.compose.foundation.layout.WindowInsets.Companion.captionBar()
;
ยอดดู WindowInsets.Type.captionBar()
ครั้ง
ซึ่งเป็นส่วนหนึ่งของแถบระบบ
ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการส่วนเนื้อหาได้ในแสดงเนื้อหาแบบขอบต่อขอบในแอปและจัดการส่วนหน้าต่างใน Compose
และยังสามารถปรับแต่งแถบส่วนหัวได้ Android 15 ได้เปิดตัวประเภทลักษณะที่ปรากฏ APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND
เพื่อทำให้แถบส่วนหัวโปร่งใสเพื่อให้แอปวาดเนื้อหาที่กำหนดเองภายในแถบส่วนหัวได้
จากนั้นแอปจะต้องรับผิดชอบในการจัดรูปแบบส่วนบนของเนื้อหาให้ดูเหมือนแถบคำบรรยาย (พื้นหลัง เนื้อหาที่กำหนดเอง และอื่นๆ) ยกเว้นองค์ประกอบคำบรรยายของระบบ (ปุ่มปิดและขยาย) ซึ่งระบบจะวาดในแถบคำบรรยายแบบโปร่งใสที่ด้านบนของแอป
แอปสามารถสลับลักษณะที่ปรากฏขององค์ประกอบระบบภายในคำบรรยายได้
ธีมสว่างและธีมมืดโดยใช้ APPEARANCE_LIGHT_CAPTION_BARS
คล้ายกับการเปิด/ปิดแถบสถานะและแถบนำทาง
นอกจากนี้ Android 15 ยังเปิดตัวเมธอด WindowInsets#getBoundingRects()
ซึ่งช่วยให้แอปตรวจสอบส่วนแทรกของแถบคำบรรยายอย่างละเอียดยิ่งขึ้น
แอปสามารถแยกความแตกต่างระหว่างพื้นที่ที่ระบบวาดองค์ประกอบของระบบและ
พื้นที่ที่ไม่ได้ใช้ซึ่งแอปสามารถวางเนื้อหาที่กำหนดเองได้โดยไม่มีองค์ประกอบของระบบที่ทับซ้อนกัน
รายการออบเจ็กต์ Rect
ที่ API แสดงจะระบุภูมิภาคของระบบที่ควรหลีกเลี่ยง พื้นที่ว่างที่เหลือ (คำนวณโดยลบสี่เหลี่ยม
จากแถบคำบรรยาย) เป็นตำแหน่งที่แอปพลิเคชันสามารถวาด
องค์ประกอบของระบบที่ทับซ้อนกัน และสามารถรับอินพุตได้
การรองรับการทำงานหลายอย่างพร้อมกันและอินสแตนซ์หลายรายการ
การทำงานหลายอย่างพร้อมกันคือหัวใจสำคัญ ของการจัดหน้าต่างบนเดสก์ท็อป และการทำให้ อินสแตนซ์ของแอปอาจช่วยเพิ่มประสิทธิภาพการทำงานของผู้ใช้ได้อย่างมาก
Android 15 เปิดตัว PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI แอปใดสามารถตั้งค่าให้ระบุ UI ของระบบที่ควรจะแสดงสำหรับแอป อนุญาตให้เปิดใช้เป็นอินสแตนซ์หลายรายการได้
จัดการอินสแตนซ์ของแอปด้วยท่าทางสัมผัสการลาก
ในโหมดหลายหน้าต่าง ผู้ใช้สามารถเริ่มอินสแตนซ์ของแอปใหม่ด้วยการลากมุมมอง ออกจากหน้าต่างของแอป และยังย้ายองค์ประกอบระหว่างอินสแตนซ์ของแอปเดียวกันได้ด้วย
Android 15 มีแฟล็ก 2 แบบเพื่อปรับแต่งลักษณะการลากและวาง ดังนี้
DRAG_FLAG_START_INTENT_SENDER_ON_UNHANDLED_DRAG
: ระบุว่าควรมอบสิทธิ์การลากที่ไม่มีการจัดการไปยังระบบเพื่อเริ่มต้นใช้งาน หากไม่มีหน้าต่างที่แสดงให้เห็นการลดลง เมื่อใช้ Flag นี้ ผู้เรียกต้องระบุClipData
ด้วยItem
ที่มีIntentSender
ที่ไม่เปลี่ยนแปลงได้สำหรับกิจกรรมที่จะเปิด (ดูClipData.Item.Builder#setIntentSender()
) ระบบจะเปิด Intent ได้หรือไม่นั้นขึ้นอยู่กับปัจจัยต่างๆ เช่น ขนาดหน้าจอปัจจุบันหรือโหมดการแบ่งหน้าจอ หากระบบไม่เปิดใช้งาน Intent ระบบจะยกเลิก Intent โดยใช้ขั้นตอนการลากและวางตามปกติDRAG_FLAG_GLOBAL_SAME_APPLICATION
: บ่งบอกว่าการดำเนินการลากสามารถข้ามขอบเขตของหน้าต่างได้ (สำหรับอินสแตนซ์หลายรายการของแอปพลิเคชันเดียวกัน)วันที่
startDragAndDrop()
จะถูกเรียกด้วยชุดธงนี้ มีเพียงหน้าต่างที่มองเห็นได้ที่เป็นของ แอปพลิเคชันจะสามารถเข้าร่วมในการดำเนินการลากและรับเนื้อหาที่ลากได้
การเพิ่มประสิทธิภาพเพิ่มเติม
ปรับแต่งการเปิดตัวแอปและเปลี่ยนจากการใช้หน้าต่างบนเดสก์ท็อปเป็นแบบเต็มหน้าจอ
ระบุขนาดและตำแหน่งเริ่มต้น
แอปบางแอปอาจปรับขนาดไม่ได้ แต่จำเป็นต้องมีหน้าต่างขนาดใหญ่เพื่อนำเสนอคุณค่าต่อผู้ใช้
คุณสามารถใช้เมธอด ActivityOptions#setLaunchBounds()
เพื่อระบุขนาดและตําแหน่งเริ่มต้นเมื่อเปิดใช้งานกิจกรรม
เข้าสู่โหมดเต็มหน้าจอจากพื้นที่ทำงานบนเดสก์ท็อป
แอปจะเข้าสู่โหมดเต็มหน้าจอแบบเป็นโปรแกรมได้โดยการเรียกใช้
Activity#requestFullScreenMode()
วิธีนี้จะทำให้แอปอยู่ในโหมดเต็มหน้าจอโดยตรงจากหน้าต่างเดสก์ท็อป