我們很高興宣布 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() 計算視窗大小類別,這是擴充 Set<WindowSizeClass> 型別的 androidx.window.core.layout 程式庫擴充功能函式。
如要在專案中加入新的視窗大小類別,只要從 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 適應性程式庫可協助您建立適應性 UI,根據目前的視窗設定 (例如視窗大小類別或裝置姿勢) 自動調整。
好消息是,程式庫已更新至最新中斷點!從 1.2 版 (目前為候選版本) 開始,預設窗格架構指令函式支援「大型」和「特大型」視窗寬度大小類別。
您只需要在 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 在行動裝置和電腦運算整合方面取得重大進展:Android 16 QPR3 版已正式發布連線螢幕支援功能!
Francesco Romano • 閱讀時間:7 分鐘
-
產品新訊
盡可能確保 Google Play 提供最安全可靠的服務體驗。今天,我們宣布推出一系列新政策和帳戶轉移功能,進一步保障使用者隱私,並防範詐欺行為。
Bennet Manuel • 3 分鐘可讀完
-
產品新訊
現在使用 Android Emulator,就能輕鬆測試支援多種裝置的互動。
Steven Jenkins • 閱讀時間:2 分鐘
隨時掌握最新消息
每週透過電子郵件接收最新的 Android 開發洞察資料。