เมื่อแอป Android ทำงานบนอุปกรณ์หลากหลายประเภท (เช่น โทรศัพท์ แท็บเล็ต อุปกรณ์พับได้ เดสก์ท็อป รถยนต์ และทีวี) และโหมดการแสดงผลแบบหลายหน้าต่างบนหน้าจอขนาดใหญ่ (เช่น การแสดงผลแบบแยกหน้าจอและหน้าต่างเดสก์ท็อป) นักพัฒนาแอปควรสร้างแอป Android ที่ปรับให้เข้ากับหน้าจอและขนาดหน้าต่างต่างๆ ได้ โดยไม่คำนึงถึงการวางแนวของอุปกรณ์ แนวคิดต่างๆ เช่น การจำกัดการวางแนวและความสามารถในการปรับขนาดมีข้อจำกัดมากเกินไปในโลกที่ใช้อุปกรณ์หลายเครื่องในปัจจุบัน
ไม่สนใจข้อจำกัดด้านการวางแนว ความสามารถในการปรับขนาด และสัดส่วนภาพ
สำหรับแอปที่กำหนดเป้าหมายเป็น Android 17 (ระดับ API 37) ขึ้นไป ข้อจำกัดด้านการวางแนว ความสามารถในการปรับขนาด และสัดส่วนภาพจะไม่มีผลกับจอแสดงผลที่มีความกว้างที่เล็กที่สุดมากกว่า 600dp อีกต่อไป แอปจะเติมหน้าต่างแสดงผลทั้งหมด โดยไม่คำนึงถึงสัดส่วนภาพหรือการวางแนวที่ผู้ใช้ต้องการ และจะไม่ใช้การใส่แถบสีดำด้านข้าง
การเปลี่ยนแปลงนี้จะนำลักษณะการทำงานมาตรฐานใหม่ของแพลตฟอร์มมาใช้ Android กำลังมุ่งไปสู่โมเดลที่คาดหวังให้แอปปรับให้เข้ากับการวางแนว ขนาดจอแสดงผล และสัดส่วนภาพต่างๆ ได้ ข้อจำกัดต่างๆ เช่น การวางแนวคงที่หรือความสามารถในการปรับขนาดที่จำกัดจะขัดขวางความสามารถในการปรับตัวของแอป ทำให้แอปปรับเปลี่ยนได้เพื่อมอบ ประสบการณ์การใช้งานที่ดีที่สุด
นอกจากนี้ คุณยังทดสอบลักษณะการทำงานนี้ได้โดยใช้เฟรมเวิร์กความเข้ากันได้ของแอป
และเปิดใช้แฟล็กความเข้ากันได้ UNIVERSAL_RESIZABLE_BY_DEFAULT
การเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบที่พบได้ทั่วไป
การไม่สนใจข้อจำกัดด้านการวางแนว ความสามารถในการปรับขนาด และสัดส่วนภาพอาจส่งผลต่อ UI ของแอปในอุปกรณ์บางเครื่อง โดยเฉพาะอย่างยิ่งองค์ประกอบที่ออกแบบมาสำหรับเลย์เอาต์ขนาดเล็กที่ล็อกไว้ในการวางแนวแนวตั้ง เช่น แอปอาจมีปัญหาต่างๆ เช่น เลย์เอาต์ยืดออก รวมถึงภาพเคลื่อนไหวและคอมโพเนนต์ที่อยู่นอกหน้าจอ การสันนิษฐานใดๆ ที่คุณ ทำเกี่ยวกับสัดส่วนภาพหรือการวางแนวอาจทำให้เกิดปัญหาด้านภาพกับแอป ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีหลีกเลี่ยงปัญหาเหล่านี้และปรับปรุงลักษณะการทำงานแบบปรับเปลี่ยนได้ ของแอป
ปัญหาที่พบได้ทั่วไปในอุปกรณ์พับได้ที่วางในแนวนอนหรือสำหรับการคำนวณสัดส่วนภาพในสถานการณ์ต่างๆ เช่น การแสดงผลแบบหลายหน้าต่าง หน้าต่างเดสก์ท็อป หรือจอแสดงผลที่เชื่อมต่อ คือเมื่อพรีวิวของกล้องปรากฏขึ้นแบบยืดออก หมุน หรือครอบตัด ปัญหานี้มักเกิดขึ้นในอุปกรณ์หน้าจอขนาดใหญ่และอุปกรณ์พับได้ เนื่องจากแอปสันนิษฐานว่าฟีเจอร์ของกล้อง (เช่น สัดส่วนภาพและการวางแนวเซ็นเซอร์) และฟีเจอร์ของอุปกรณ์ (เช่น การวางแนวของอุปกรณ์และการวางแนวตามธรรมชาติ) มีความสัมพันธ์กันแบบตายตัว ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการพรีวิวของกล้อง
การอนุญาตให้หมุนอุปกรณ์จะทำให้เกิดการสร้างกิจกรรมใหม่มากขึ้น ซึ่งอาจทำให้ข้อมูลสถานะของผู้ใช้สูญหายหากไม่ได้บันทึกไว้อย่างถูกต้อง ดูวิธีบันทึกสถานะ UI อย่างถูกต้องในบันทึกสถานะ UI
รายละเอียดการใช้งาน
ระบบจะไม่สนใจแอตทริบิวต์ของไฟล์ Manifest และ API รันไทม์ต่อไปนี้ในอุปกรณ์หน้าจอขนาดใหญ่ในโหมดเต็มหน้าจอและโหมดการแสดงผลแบบหลายหน้าต่าง
screenOrientationresizableActivityminAspectRatiomaxAspectRatiosetRequestedOrientation()getRequestedOrientation()
ระบบจะไม่สนใจค่าต่อไปนี้สำหรับ screenOrientation, setRequestedOrientation() และ getRequestedOrientation()
portraitreversePortraitsensorPortraituserPortraitlandscapereverseLandscapesensorLandscapeuserLandscape
สำหรับความสามารถในการปรับขนาดจอแสดงผล android:resizeableActivity="false",
android:minAspectRatio และ android:maxAspectRatio จะไม่มีผล
ข้อยกเว้น
ข้อจำกัดด้านการวางแนว ความสามารถในการปรับขนาด และสัดส่วนภาพของ Android 17 จะไม่มีผลในสถานการณ์ต่อไปนี้
- เกม (อิงตามแฟล็ก
android:appCategory) - ผู้ใช้เลือกใช้ลักษณะการทำงานเริ่มต้นของแอปอย่างชัดแจ้งในการตั้งค่าสัดส่วนภาพของอุปกรณ์
- หน้าจอที่มีความกว้างที่เล็กที่สุดน้อยกว่า
sw600dp