我們很高興宣布, Jetpack WindowManager 1.5.0 已推出穩定版!
這個版本以 WindowManager 的強大自動調整功能為基礎,可讓您更輕鬆地建立精緻、自動調整的 UI,在所有螢幕大小上都能呈現良好效果。隨著 Android 生態系統持續成長,使用者在各種裝置上與應用程式互動的頻率也更勝以往,包括手機、摺疊式裝置、平板電腦、智慧螢幕、Chromebook,甚至是車輛停妥時的車用螢幕。
WindowManager 1.5 著重於為這個多元的裝置環境提供更優質的工具。
WindowManager 1.5 的新功能
這個穩定版本針對超大螢幕推出新的中斷點、強化活動嵌入 API,並提供更靈活的視窗指標計算方式。
新增視窗大小類別:大型和特大型
1.5 版最大的更新是新增兩個寬度視窗大小類別:大型和超大型。
視窗大小類別是我們官方認可的一組可視區域中斷點,可協助您設計及開發自動調整式版面配置。在 1.5 版中,我們將這項指南擴展到一般平板電腦以外的螢幕。
以下是新的寬度中斷點:
- 大型:寬度介於 1200dp 至 1600dp
- 特大:寬度 ≥1600dp
根據螢幕寬度區分的視窗大小類別。
為什麼這些原則很重要?
從 Android 16 QPR1 Beta 2 開始,Android 支援外接螢幕,使用者可將外接螢幕連接至裝置,並將裝置轉換為類似電腦的大螢幕工具。
手機連接外接螢幕,外接螢幕上顯示電腦工作階段。
這項新功能推出後,我們必須提供明確指引,協助開發人員納入更大的螢幕。
在這些超大螢幕上,如果只是放大平板電腦的展開版面配置,不一定能提供最佳使用者體驗。舉例來說,電子郵件用戶端在展開視窗大小類別中,可以輕鬆顯示兩個窗格 (信箱和郵件)。但在超大型電腦螢幕上,電子郵件用戶端可以優雅地顯示三或四個窗格,例如同時顯示信箱、郵件清單、完整郵件內容和日曆/工作面板。
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,而不只是活動內容。這樣一來,您就能更靈活地從應用程式的不同部分存取視窗資訊。
如何開始使用
如要在 Android 專案中開始使用新的大型和超大型類別,以及其他 1.5 版功能,請在 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 16 QPR3 版本已正式支援外接螢幕,這代表 Android 在整合行動和電腦運算方面,達成了重大里程碑!
Francesco Romano • 閱讀時間:7 分鐘 -
產品最新消息今天,我們在 Android 開發人員高峰會上宣布,將廣泛提供多項工具和 API,旨在消除日常摩擦,讓您更靈活地建構出色的 Android 應用程式。
Matthew McCullough • 閱讀時間:4 分鐘 -
產品最新消息Android Studio Rabbit 2 穩定版已推出,可供您在正式環境中使用。此版本包含多項重要功能,可提升開發效率,例如「自備代理」、全新 XR 模擬器功能、LeakCanary 更新、全新代理技能管理工具、AI 程式碼審查等。
Matthew Warner • 閱讀時間:3 分鐘
每週透過電子郵件接收 Android 開發人員的最新深入分析。