產品最新消息

Jetpack WindowManager 1.5 穩定版

閱讀時間:2 分鐘
查看 Francesco Romano 的個人資料
Francesco Romano Android 開發人員關係工程師

我們很高興宣布, Jetpack WindowManager 1.5.0 已推出穩定版!

這個版本以 WindowManager 的強大自動調整功能為基礎,可讓您更輕鬆地建立精緻、自動調整的 UI,在所有螢幕大小上都能呈現良好效果。隨著 Android 生態系統持續成長,使用者在各種裝置上與應用程式互動的頻率也更勝以往,包括手機、摺疊式裝置、平板電腦、智慧螢幕、Chromebook,甚至是車輛停妥時的車用螢幕。

WindowManager 1.5 著重於為這個多元的裝置環境提供更優質的工具。

WindowManager 1.5 的新功能

這個穩定版本針對超大螢幕推出新的中斷點、強化活動嵌入 API,並提供更靈活的視窗指標計算方式。

新增視窗大小類別:大型和特大型

1.5 版最大的更新是新增兩個寬度視窗大小類別:大型和超大型。

視窗大小類別是我們官方認可的一組可視區域中斷點,可協助您設計及開發自動調整式版面配置。在 1.5 版中,我們將這項指南擴展到一般平板電腦以外的螢幕。

以下是新的寬度中斷點:

  • 大型:寬度介於 1200dp 至 1600dp
  • 特大:寬度 ≥1600dp
window_size_classes_width.png

根據螢幕寬度區分的視窗大小類別。 

為什麼這些原則很重要?

從 Android 16 QPR1 Beta 2 開始,Android 支援外接螢幕,使用者可將外接螢幕連接至裝置,並將裝置轉換為類似電腦的大螢幕工具。

ADB_5350_asset.gif

手機連接外接螢幕,外接螢幕上顯示電腦工作階段。 

這項新功能推出後,我們必須提供明確指引,協助開發人員納入更大的螢幕。

在這些超大螢幕上,如果只是放大平板電腦的展開版面配置,不一定能提供最佳使用者體驗。舉例來說,電子郵件用戶端在展開視窗大小類別中,可以輕鬆顯示兩個窗格 (信箱和郵件)。但在超大型電腦螢幕上,電子郵件用戶端可以優雅地顯示三或四個窗格,例如同時顯示信箱、郵件清單、完整郵件內容和日曆/工作面板。

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 板型規格。如需完整的異動和錯誤修正清單,請參閱官方版本資訊。

祝您編寫程式一切順利!

作者:
繼續閱讀