我們很高興宣布 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 分鐘
-
產品新訊
從擴增疊加層到完全沉浸式環境,Android XR 生態系統正在迅速擴展,Samsung Galaxy XR 也已於今天上市。
Stevan Silva, Vinny DaSilva • 3 分鐘可讀完
-
產品新訊
每年 Google I/O 大會都會發布生態系統和產品的最新消息與資源,包括 Android 開發。隨著開發工作轉向 AI 和代理程式輔助工具,我們也擴大產品陣容,無論您決定如何建構 Android 應用程式,都能獲得更完善的支援。
Simona Milanovic • 閱讀時間:2 分鐘
隨時掌握最新消息
每週透過電子郵件接收最新的 Android 開發洞察資訊。