應用程式方向、顯示比例和大小調整功能

Android 應用程式可在各種裝置上執行,包括手機、平板電腦、折疊式裝置、Chromebook、車輛、電視,甚至 XR。為了因應這種多變的環境,您的應用程式應支援所有裝置板型規格和螢幕尺寸。

Android 16 (API 級別 36) 可讓應用程式藉由覆寫螢幕方向、顯示比例和可調整大小的應用程式限制,以便適應不同的板型規格和顯示大小。此覆寫值適用於最小寬度大於或等於 600dp 的裝置,定義如下:

  • 平板電腦
  • 大螢幕摺疊式裝置的內螢幕
  • 電腦分割視窗 (適用於所有板型規格)

如果螢幕的最小寬度為 >= 600dp,指定 API 級別 36 的應用程式可調整大小,且可進入多視窗模式 (等同於 resizeableActivity="true")。

在 Android 16 之前,應用程式會在展開的大螢幕裝置上顯示黑邊,但在以 Android 16 為目標版本時,會以全螢幕顯示。應用程式在全螢幕模式下顯示更多新聞項目,而非加上黑邊。
圖 1. 開發人員新聞動態饋給先前在大型螢幕裝置上顯示上下黑邊 (左圖),現在鎖定 Android 16 (右圖) 時會以全螢幕顯示。

Android 16 會強制執行一致的自動調整應用程式設計模型,遵循使用者對裝置方向、顯示比例和螢幕大小的偏好設定,藉此提升使用者體驗。

變更內容

如果應用程式指定 Android 16 (API 級別 36) 為大螢幕裝置的目標版本,系統會忽略下列資訊清單屬性和 API:

屬性或 API 忽略的值
screenOrientation portraitlandscapereversePortraitreverseLandscapesensorPortraitsensorLandscapeuserPortraituserLandscape
resizeableActivity 全部
minAspectRatio 全部
maxAspectRatio 全部
setRequestedOrientation()

getRequestedOrientation()
portraitlandscapereversePortraitreverseLandscapesensorPortraitsensorLandscapeuserPortraituserLandscape

例外狀況

不受 Android 16 變更影響的例外狀況包括:

  • 螢幕小於 sw600dp (大多數手機、翻轉式手機和大螢幕折疊式裝置的外部螢幕)

  • 遊戲 (根據 android:appCategory 標記)

    使用 Android App Bundle 和 Play 應用程式簽署功能發布遊戲,讓 Google Play 管理標記,並自動提供應用程式套件的優點。另請參閱「應用程式資訊清單總覽」。

  • 使用者在顯示比例設定中選擇啟用應用程式的預設行為

選擇退出

如要停用 API 級別 36 的行為,請宣告 PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY 資訊清單屬性。

如要選擇不參與特定活動,請在 <activity> 元素中設定屬性:

<activity ...>
    <property
        android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
        android:value="true" />
    ...
</activity>

如要為整個應用程式停用這項功能,請在 <application> 元素中設定屬性:

<application ...>
    <property
        android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
        android:value="true" />
    ...
</application>

測試

如要測試應用程式是否受到 Android 16 變更的影響,請在 Android Studio 中使用 Pixel Tablet 和 Pixel Fold 系列模擬器,並在應用程式模組的 build.gradle 檔案中設定 targetSdkPreview = "Baklava"

或者,您也可以在測試裝置上啟用 UNIVERSAL_RESIZABLE_BY_DEFAULT 標記,以便使用應用程式相容性架構 (請參閱「相容性架構工具」)。

您可以使用 Espresso 測試架構和 Jetpack Compose 測試 API 自動化測試。

常見問題

限制裝置螢幕方向、顯示比例或應用程式大小調整功能的應用程式,在 Android 16 上可能會發生顯示問題,例如重疊的版面配置。

如要在手機、折疊式裝置、平板電腦、Chromebook、車用螢幕或擴增實境上提供最佳使用者體驗,請建構回應式且可調整的應用程式:

  • 避免 UI 元素拉長:針對標準直向手機螢幕設計的版面配置,可能無法配合其他顯示比例。舉例來說,如果 UI 元素填滿整個螢幕寬度,在橫向模式下會顯示為拉長的狀態。為元件新增最大寬度,避免延展。

  • 啟用可捲動的版面配置:如果版面配置無法捲動,使用者可能無法在橫向模式下存取螢幕外側的按鈕或其他 UI 元素。啟用應用程式版面配置的捲動功能,確保所有內容都能在任何螢幕高度下顯示。

  • 確保直向和橫向的相機相容性:如果相機觀景窗預覽畫面假設相機感應器的特定顯示比例和方向,在未符合規格的螢幕上可能會導致預覽畫面拉長或翻轉。確認取景器會在螢幕方向變更時正確旋轉。讓取景器調整為與感應器顯示比例不同的 UI 顯示比例。

  • 在視窗大小變更期間保留狀態:移除螢幕方向和顯示比例限制後,應用程式視窗大小可能會經常變更,以回應使用者偏好的應用程式使用方式,例如旋轉、摺疊或展開裝置,或是在多視窗或電腦視窗模式下調整應用程式大小。設定變更 (例如方向變更和視窗大小調整) 會導致活動重建 (預設)。為確保最佳使用者體驗,請在設定變更期間保留應用程式狀態,讓應用程式保留資料 (例如表單輸入內容),使用者也能維持相關情境。

  • 使用視窗大小類別:無需進行裝置專屬的自訂設定,即可支援不同的視窗大小和顯示比例。假設視窗大小會經常變動。使用視窗大小類別來描述視窗的尺寸,然後套用適當的自動調整式版面配置。

  • 建立回應式版面配置:在視窗大小類別中,回應式版面配置會根據螢幕尺寸變更調整,以便隨時建立最佳的應用程式呈現方式。

時間軸

  • Android 16 (2025):對於指定 API 級別 36 的應用程式,支援所有螢幕方向和顯示比例,以及應用程式可調整大小功能,是針對大螢幕裝置 (最小螢幕寬度 >= 600dp) 的基準體驗。不過,開發人員可以選擇不採用。

  • 2026 年 Android 版本:對於指定 API 級別 37 的應用程式,支援所有螢幕方向和顯示比例,以及應用程式可調整大小功能,將成為大螢幕裝置 (最小螢幕寬度 >= 600 dp) 的基本體驗。開發人員無法選擇不採用。

目標 API 級別 適用裝置 允許開發人員選擇停用
36 (Android 16) 大螢幕裝置 (最小螢幕寬度 >= 600 dp)
37 (預計) 大螢幕裝置 (最小螢幕寬度 >= 600 dp)

指定特定 API 級別的期限取決於應用程式商店。自 2026 年 8 月起,Google Play 將要求應用程式指定 API 級別 36,自 2027 年 8 月起則要求指定 API 級別 37。

其他資源