Jetpack WindowManager 1.5 พร้อมให้ใช้งานอย่างเสถียรแล้ว
ใช้เวลาอ่าน 2 นาที
เรายินดีที่จะประกาศว่า Jetpack WindowManager 1.5.0 เสถียรแล้ว
รุ่นนี้ต่อยอดจากรากฐานที่แข็งแกร่งของความสามารถในการปรับเปลี่ยนใน WindowManager ซึ่งช่วยให้สร้าง UI แบบปรับเปลี่ยนได้ที่สวยงามและดูดีในหน้าจอทุกขนาดได้ง่ายยิ่งขึ้น เมื่อระบบนิเวศของ Android เติบโตอย่างต่อเนื่อง ผู้ใช้ก็มีส่วนร่วมกับแอปในอุปกรณ์ที่หลากหลายมากขึ้นกว่าที่เคย ตั้งแต่โทรศัพท์และอุปกรณ์แบบพับได้ไปจนถึงแท็บเล็ต จอแสดงผลที่เชื่อมต่อ Chromebook และแม้แต่จอแสดงผลในรถยนต์ในโหมดจอดรถ
WindowManager 1.5 มุ่งเน้นที่การจัดหาเครื่องมือที่ดีขึ้นสำหรับสภาพแวดล้อมของอุปกรณ์ที่หลากหลายนี้
มีอะไรใหม่ใน WindowManager 1.5
เวอร์ชันเสถียรนี้เปิดตัวเบรกพอยต์ใหม่สำหรับหน้าจอขนาดใหญ่มาก ปรับปรุง API การฝังกิจกรรม และเพิ่มความยืดหยุ่นในการคำนวณเมตริกหน้าต่าง
คลาสขนาดหน้าต่างใหม่: ใหญ่และใหญ่พิเศษ
การอัปเดตที่สำคัญที่สุดใน 1.5 คือการเพิ่มคลาสขนาดหน้าต่างความกว้างใหม่ 2 คลาส ได้แก่ ขนาดใหญ่และขนาดใหญ่พิเศษ
คลาสขนาดหน้าต่างคือชุดเบรกพอยต์วิวพอร์ตอย่างเป็นทางการที่กำหนดไว้ ซึ่งจะช่วยให้คุณออกแบบและพัฒนาเลย์เอาต์ที่ปรับเปลี่ยนตามอุปกรณ์ได้ ในเวอร์ชัน 1.5 เราจะขยายคำแนะนำนี้ไปยังหน้าจอที่ใหญ่กว่าแท็บเล็ตทั่วไป
เบรกพอยท์ความกว้างใหม่มีดังนี้
- ขนาดใหญ่: สำหรับความกว้างระหว่าง 1200dp ถึง 1600dp
- ใหญ่พิเศษ: สำหรับความกว้าง ≥1600dp
คลาสขนาดหน้าต่างที่แตกต่างกันตามความกว้างของจอแสดงผล
ทำไมจึงมีความสำคัญ
ตั้งแต่ Android 16 QPR1 เบต้า 2 เป็นต้นไป Android จะรองรับจอแสดงผลที่เชื่อมต่อ ซึ่งช่วยให้ผู้ใช้เชื่อมต่อจอแสดงผลภายนอกกับอุปกรณ์และเปลี่ยนให้เป็นเครื่องมือที่คล้ายเดสก์ท็อปที่มีหน้าจอขนาดใหญ่ได้
โทรศัพท์เชื่อมต่อกับจอแสดงผลภายนอก โดยมีเซสชันเดสก์ท็อปบนจอแสดงผลภายนอก
เมื่อมีฟีเจอร์ใหม่นี้ คำแนะนำที่ชัดเจนในการรวมจอแสดงผลขนาดใหญ่จึงเป็นสิ่งสำคัญ
ในแพลตฟอร์มขนาดใหญ่มากเหล่านี้ การปรับขนาดเลย์เอาต์แบบขยายของแท็บเล็ตให้ใหญ่ขึ้นเพียงอย่างเดียวอาจไม่ได้มอบประสบการณ์ของผู้ใช้ที่ดีที่สุดเสมอไป ตัวอย่างเช่น โปรแกรมรับส่งอีเมลอาจแสดง 2 แผง (กล่องจดหมายและข้อความ) ได้อย่างสบายๆ ในคลาสขนาดหน้าต่างแบบขยาย แต่บนจอภาพเดสก์ท็อปขนาดใหญ่พิเศษ โปรแกรมรับส่งอีเมลสามารถแสดงผลแผง 3 หรือ 4 แผงได้อย่างสวยงาม เช่น กล่องจดหมาย รายการข้อความ เนื้อหาข้อความแบบเต็ม และแผงปฏิทิน/งานพร้อมกันทั้งหมด
WindowManager 1.5 มีเบรกพอยต์อย่างเป็นทางการสำหรับจอแสดงผลขนาดใหญ่มาก จึงช่วยให้คุณทราบได้อย่างชัดเจนว่าควรใช้เลย์เอาต์ที่ออกแบบมาโดยเฉพาะเพื่อประสบการณ์การใช้งานเดสก์ท็อปที่มีประสิทธิภาพและมีข้อมูลหนาแน่น
คุณสามารถคำนวณคลาสขนาดหน้าต่างได้โดยใช้ computeWindowSizeClass() ซึ่งเป็นฟังก์ชันส่วนขยายไลบรารี androidx.window.core.layout ที่ขยายประเภท Set<WindowSizeClass>
หากต้องการรวมคลาสขนาดหน้าต่างใหม่ไว้ในโปรเจ็กต์ เพียงเรียกใช้ฟังก์ชันจากชุด WindowSizeClass.BREAKPOINTS_V2 แทน WindowSizeClass.BREAKPOINTS_V1 ดังนี้
val currentWindowMetrics = WindowMetricsCalculator.getOrCreate() .computeCurrentWindowMetrics(LocalContext.current) val sizeClass = WindowSizeClass.BREAKPOINTS_V2 .computeWindowSizeClass(currentWindowMetrics)
จากนั้นใช้เลย์เอาต์ที่ถูกต้องเมื่อแน่ใจว่าแอปมีพื้นที่อย่างน้อยเท่านี้
if(sizeClass.isWidthAtLeastBreakpoint(
WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){
...
// window is at least 1200 dp wide
}ไลบรารีแบบปรับอัตโนมัติ
ไลบรารี Compose Material 3 Adaptive ช่วยให้คุณสร้าง UI แบบปรับอัตโนมัติซึ่งจะปรับตัวเองโดยอัตโนมัติตามการกำหนดค่าหน้าต่างปัจจุบัน เช่น คลาสขนาดหน้าต่างหรือท่าทางของอุปกรณ์
ข่าวดีคือไลบรารีได้รับการอัปเดตให้มีเบรกพอยต์ใหม่แล้ว ตั้งแต่เวอร์ชัน 1.2 (ตอนนี้อยู่ในขั้นรุ่นที่อาจได้รับการเผยแพร่) ฟังก์ชันคำสั่ง Scaffold ของแผงเริ่มต้นจะรองรับคลาสขนาดความกว้างของหน้าต่างขนาดใหญ่และขนาดใหญ่พิเศษ
คุณเพียงแค่ต้องเลือกใช้โดยประกาศในไฟล์บิลด์ Gradle ว่าต้องการใช้เบรกพอยต์ใหม่ ดังนี้
currentWindowAdaptiveInfo( supportLargeAndXLargeWidth = true)
การปรับปรุงเพิ่มเติม
- การฝังกิจกรรม - บันทึกและกู้คืนอัตโนมัติ: ตอนนี้ WindowManager สามารถบันทึกและกู้คืนสถานะของการแยกการฝังกิจกรรมได้โดยอัตโนมัติ ซึ่งจะช่วยคงเลย์เอาต์ของผู้ใช้ไว้ตลอดการสร้างกระบวนการใหม่ ส่งผลให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่เสถียรและสอดคล้องกันมากขึ้น นักพัฒนาแอปไม่จำเป็นต้องบันทึกและกู้คืนสถานะด้วยตนเองอีกต่อไป แต่สามารถเลือกใช้แบบอัตโนมัติได้โดยตั้งค่าพร็อพเพอร์ตี้ EmbeddingConfiguration#isAutoSaveEmbeddingState
- WindowMetrics ที่ขยาย: ตอนนี้คุณสามารถคำนวณ WindowMetrics จากบริบทของแอปพลิเคชันได้แล้ว ไม่ใช่แค่บริบทของกิจกรรม ซึ่งจะช่วยให้คุณเข้าถึงข้อมูลหน้าต่างจากส่วนต่างๆ ของแอปได้อย่างยืดหยุ่นมากขึ้น
วิธีเริ่มต้นใช้งาน
หากต้องการเริ่มใช้คลาสขนาดใหญ่และขนาดใหญ่พิเศษใหม่ รวมถึงฟีเจอร์ 1.5 อื่นๆ ในโปรเจ็กต์ Android ให้อัปเดตทรัพยากร Dependency ของแอปใน build.gradle.kts เป็นเวอร์ชันเสถียรล่าสุด
dependencies {
implementation("androidx.window:window:1.5.0")
// or, if you're using the WindowManager testing library:
testImplementation("androidx.window:window-testing:1.5.0")
}WindowManager 1.5 เป็นอีกก้าวหนึ่งในการสร้างแอปที่ปรับเปลี่ยนตามอุปกรณ์ได้อย่างเต็มรูปแบบซึ่งทำงานในรูปแบบของอุปกรณ์ Android ต่างๆ ดูรายการการเปลี่ยนแปลงและการแก้ไขข้อบกพร่องทั้งหมดได้ในบันทึกประจำรุ่นอย่างเป็นทางการ
ขอให้สนุกกับการเขียนโค้ด
-
ข่าวสารเกี่ยวกับผลิตภัณฑ์เรายินดีที่จะประกาศความสำเร็จครั้งสำคัญในการนำการประมวลผลบนอุปกรณ์เคลื่อนที่และเดสก์ท็อปมาไว้ใกล้กันมากขึ้นบน Android นั่นคือการรองรับจอแสดงผลที่เชื่อมต่อได้พร้อมให้บริการแก่ผู้ใช้ทั่วไปแล้วในรุ่น Android 16 QPR3
Francesco Romano • ใช้เวลาอ่าน 7 นาที -
ข่าวสารเกี่ยวกับผลิตภัณฑ์เมื่อการพัฒนา Agent เร็วขึ้น วิศวกรรม Android กำลังก้าวเข้าสู่พรมแดนใหม่ที่น่าตื่นเต้น นั่นคือการเปลี่ยนจากการเติมโค้ดแบบช่วยเหลือไปเป็น Agent ที่ดำเนินการตั้งแต่ต้นจนจบภายใต้คำสั่งของคุณ คุณมีตัวเลือกและความยืดหยุ่นอย่างเต็มที่ในโมเดลและ Agent ที่ใช้
Jason Buchel • ใช้เวลาอ่าน 3 นาที -
ข่าวสารเกี่ยวกับผลิตภัณฑ์วันนี้เราได้แชร์วิธีที่เรากำลังนำวิสัยทัศน์ "เป็นมากกว่าร้านค้า" ไปสู่บทถัดไป Google Play ตอบสนองความต้องการของผู้ใช้ได้ทุกที่ทุกเวลา ตั้งแต่แท็บ "คุณ" ซึ่งปัจจุบันเป็นศูนย์กลางส่วนตัวสำหรับผู้ใช้ที่ใช้งานอยู่รายเดือนกว่า 250 ล้านคน ไปจนถึงแพลตฟอร์มเกมแบบรวมที่เชื่อมต่อโปรไฟล์เกมเมอร์กว่า 700 ล้านโปรไฟล์
Paul Feng • ใช้เวลาอ่าน 3 นาที
รับข้อมูลเชิงลึกเกี่ยวกับการพัฒนา Android ล่าสุดที่ส่งไปยังกล่องจดหมายของคุณทุกสัปดาห์