適應性措施

自動調整應用程式支援所有尺寸的螢幕:整個裝置螢幕、可調整大小 多視窗模式的視窗,直向與橫向,摺疊 和展開的摺疊式裝置螢幕。

這份簡短的配置設定和 API 清單可讓您建構自動調整式環境 應用程式。但部分過時設定和 API 與自動調整應用程式不相容 務必避免使用

大小調整

自動調整應用程式支援應用程式大小調整和多視窗模式。

<activity>resizeableActivity 屬性和 <application> 資訊清單元素會啟用或停用多視窗模式 模式。在 Android 12 (API 級別 31) 和 Android 12 (API 級別 31) 中 的大螢幕支援多視窗模式, 屬性。詳情請參閱「支援多視窗模式」。

✓ 建議做法

讓應用程式支援多視窗模式,並多工處理 可以提升使用者的工作效率和滿意度

如果應用程式指定的 API 級別低於 24,請設定 resizeableActivity="true"; 否則不用擔心,在 Android 7.0 (API) 上預設為 true 第 24 級) 及更新版本。

✗ 不建議

請勿為任何 API 級別設定 resizeableActivity="false"。不要排除應用程式 例如多視窗模式的用途

方向

無論螢幕為何,自動調整式應用程式都支援直向和橫向螢幕方向 大小或視窗模式

screenOrientation 資訊清單設定會限制活動方向。

✓ 建議做法

從應用程式資訊清單中排除 screenOrientation 設定。

鎖定應用程式方向無法防止視窗大小變更。應用程式為 會隨著裝置進入多視窗模式、裝置折疊或展開時調整大小 或是任意形式視窗調整大小時您的應用程式必須支援在期限內變更 則無論 screenOrientation 屬性設定為何。

✗ 不建議

不要限制活動方向。鎖定螢幕方向的應用程式會加上黑邊 以及不相容的視窗大小

應用程式加上黑邊後,在 Google Play 的曝光度可能會下降 平板電腦、摺疊式裝置和 ChromeOS 裝置。

顯示比例

隨著螢幕大小和視窗大小而異,兩者的長寬比不同, 從窄化到正方形,或是短、寬

minAspectRatiomaxAspectRatio 資訊清單設定限制 自動鎖定應用程式的顯示比例和硬式編碼值。

✓ 建議做法

根據螢幕尺寸調整應用程式,無論相對的尺寸都一樣。

移除應用程式中的 minAspectRatiomaxAspectRatio 設定 資訊清單。或確保應用程式可調整大小,且顯示比例會代勞 (請參閱「可調整大小」一節)。

✗ 不建議

請勿試圖控制應用程式的相對尺寸,如果應用程式 螢幕或視窗的長寬比與 應用程式的顯示比例會加上黑邊。

在 Android 14 (API 級別 34) 以上版本中,使用者可以覆寫應用程式顯示比例 展開黑邊的應用程式,以填滿可用的顯示區域。請參閱裝置 相容性模式

視窗大小

針對不同螢幕大小最佳化版面配置,是推動核心程序的核心, 自動調整式設計自動調整式應用程式著重在應用程式視窗大小,而非裝置大小 螢幕大小。應用程式為全螢幕模式時,應用程式視窗就是裝置畫面。

視窗大小類別提供以系統化的方式決定及分類 也就是應用程式視窗的大小在視窗中變更版面配置,即可調整應用程式 並且變更應用程式的尺寸類別

✓ 建議做法

根據視窗大小類別評估應用程式視窗大小。

如要判斷視窗大小類別,請使用 currentWindowAdaptiveInfo() Compose Material 3 自動調整式程式庫的頂層函式。如要 資訊,請參閱建構自動調整式應用程式

✗ 不建議

請不要忽略視窗大小類別定義的公用程式,以及 內建的 API請勿使用已淘汰的 API 計算視窗大小。

已淘汰的 API

舊版平台 API 無法正確測量應用程式視窗。一些操作 裝置螢幕畫面,部分排除系統裝飾。

✓ 建議做法

使用 WindowManager#getCurrentWindowMetrics()WindowMetrics#getBounds() 可取得應用程式視窗的大小。使用 WindowMetrics#getDensity() 可取得顯示密度。

✗ 不建議

請勿使用下列已淘汰的 Display API 來判斷視窗大小:

Compose

Jetpack Compose 是專為自動調整 UI 開發作業而設計。無 XML,沒有版面配置 而非資源限定詞只有以 Kotlin 為基礎的無狀態可組合項 例如 ColumnRowBox,用於描述您的 UI 和修飾符 例如 offsetpaddingsize,在 UI 中新增行為 元素。

✓ 建議做法

使用 Compose 建構。隨時掌握最新功能與版本。

✗ 不建議

請勿仰賴過時的技術,別讓應用程式過時。

Compose Material 3 自動調整程式庫

Compose Material 3 自動調整程式庫提供的元件和 API 協助開發自動調整式應用程式。

✓ 建議做法

使用下列 API,讓應用程式自動調整:

✗ 不建議

可別白費工夫。別錯過開發人員的工作效率提升成果 所有 Jetpack Compose 程式庫提供的內建功能

版面配置

使用者希望應用程式能藉由補充補充資料,充分運用可用的顯示空間 或加強型控制項

尤其是,自動調整式應用程式會根據螢幕變更,將版面配置最佳化,特別是 應用程式視窗大小或裝置型態改變。

✓ 建議做法

在視窗大小變更時變更 UI 元件,以充分利用可用的功能 顯示空間例如替換密集使用的底部導覽列 中型和展開視窗中垂直導覽邊欄的視窗大小。 重新調整對話方塊的位置,方便在所有螢幕上存取。

將內容整理到窗格中,即可啟用多窗格版面配置,例如: 顯示動態內容的清單-詳細資料和輔助窗格。

,瞭解如何調查及移除這項存取權。
✓ 建議做法:以雙窗格版面配置歸類的清單和詳細資料活動。
✗ 不建議

如果您不是使用內容窗格,不要只延展 UI 元素來填滿畫面 可用的顯示空間。長行文字難以閱讀。延展 按鈕設計不良使用 Modifier.fillMaxWidth 時,請勿使用 因為這是所有顯示大小都適用的行為。

,瞭解如何調查及移除這項存取權。
✗ 錯誤:版面配置可延展,以填滿展開式視窗。

輸入裝置

使用者不會只透過觸控螢幕與應用程式互動,

自動調整應用程式支援外接鍵盤、滑鼠和觸控筆,以提供 提升使用者體驗,並幫助他們在各種板型規格的裝置上 各種類型的資料

✓ 建議做法

利用 Android 架構的內建功能, 瀏覽鍵盤分頁,以及滑鼠或觸控板的點選、選取和捲動功能。發布 鍵盤快速鍵輔助程式中檢查應用程式的鍵盤快速鍵。

使用 Jetpack Material 3 程式庫,方便使用者寫入 使用觸控筆的 TextField 元件。

✗ 不建議

不要指定其他輸入法。不要導入無障礙功能 以負載平衡機制分配流量 即可降低應用程式發生效能問題的風險

摘要

  • 使用 Compose 和 Material 3 自動調整程式庫建構應用程式
  • 根據視窗大小類別的基礎版面配置
  • 建立多窗格版面配置
  • 讓您的應用程式可調整大小。
  • 一律不鎖定活動方向
  • 不要限制顯示比例
  • 支援觸控以外的輸入方式
  • 避免使用已淘汰的 API

執行使用者期待: 根據使用者日常所需的各種裝置,將您的應用程式最佳化。

✗ 別等待。現在就開始使用吧!