自動調整應用程式支援所有尺寸的螢幕:整個裝置螢幕、可調整大小 多視窗模式的視窗,直向與橫向,摺疊 和展開的摺疊式裝置螢幕。
這份簡短的配置設定和 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 裝置。
顯示比例
隨著螢幕大小和視窗大小而異,兩者的長寬比不同, 從窄化到正方形,或是短、寬
minAspectRatio
和 maxAspectRatio
資訊清單設定限制
自動鎖定應用程式的顯示比例和硬式編碼值。
根據螢幕尺寸調整應用程式,無論相對的尺寸都一樣。
移除應用程式中的 minAspectRatio
和 maxAspectRatio
設定
資訊清單。或確保應用程式可調整大小,且顯示比例會代勞
(請參閱「可調整大小」一節)。
請勿試圖控制應用程式的相對尺寸,如果應用程式 螢幕或視窗的長寬比與 應用程式的顯示比例會加上黑邊。
在 Android 14 (API 級別 34) 以上版本中,使用者可以覆寫應用程式顯示比例 展開黑邊的應用程式,以填滿可用的顯示區域。請參閱裝置 相容性模式。
視窗大小
針對不同螢幕大小最佳化版面配置,是推動核心程序的核心, 自動調整式設計自動調整式應用程式著重在應用程式視窗大小,而非裝置大小 螢幕大小。應用程式為全螢幕模式時,應用程式視窗就是裝置畫面。
視窗大小類別提供以系統化的方式決定及分類 也就是應用程式視窗的大小在視窗中變更版面配置,即可調整應用程式 並且變更應用程式的尺寸類別
根據視窗大小類別評估應用程式視窗大小。
如要判斷視窗大小類別,請使用 currentWindowAdaptiveInfo()
Compose Material 3 自動調整式程式庫的頂層函式。如要
資訊,請參閱建構自動調整式應用程式。
請不要忽略視窗大小類別定義的公用程式,以及 內建的 API請勿使用已淘汰的 API 計算視窗大小。
已淘汰的 API
舊版平台 API 無法正確測量應用程式視窗。一些操作 裝置螢幕畫面,部分排除系統裝飾。
使用 WindowManager#getCurrentWindowMetrics()
和
WindowMetrics#getBounds()
可取得應用程式視窗的大小。使用
WindowMetrics#getDensity()
可取得顯示密度。
請勿使用下列已淘汰的 Display
API 來判斷視窗大小:
getSize()
:已在 Android 11 (API 級別 30) 中淘汰getMetrics()
:已在 Android 11 (API 級別 30) 中淘汰getRealSize()
:已在 Android 12 (API 級別 31) 中淘汰getRealMetrics()
:已在 Android 12 (API 級別 31) 中淘汰
Compose
Jetpack Compose 是專為自動調整 UI 開發作業而設計。無 XML,沒有版面配置
而非資源限定詞只有以 Kotlin 為基礎的無狀態可組合項
例如 Column
、Row
和 Box
,用於描述您的 UI 和修飾符
例如 offset
、padding
和 size
,在 UI 中新增行為
元素。
使用 Compose 建構。隨時掌握最新功能與版本。
請勿仰賴過時的技術,別讓應用程式過時。
Compose Material 3 自動調整程式庫
Compose Material 3 自動調整程式庫提供的元件和 API 協助開發自動調整式應用程式。
使用下列 API,讓應用程式自動調整:
NavigationSuiteScaffold
:在導覽列和導覽列之間切換 導覽邊欄,取決於應用程式視窗大小類別。ListDetailPaneScaffold
:實作清單詳細資料標準版面配置。 根據應用程式視窗大小調整版面配置。SupportingPaneScaffold
:實作輔助窗格標準 版面配置。
可別白費工夫。別錯過開發人員的工作效率提升成果 所有 Jetpack Compose 程式庫提供的內建功能
版面配置
使用者希望應用程式能藉由補充補充資料,充分運用可用的顯示空間 或加強型控制項
尤其是,自動調整式應用程式會根據螢幕變更,將版面配置最佳化,特別是 應用程式視窗大小或裝置型態改變。
在視窗大小變更時變更 UI 元件,以充分利用可用的功能 顯示空間例如替換密集使用的底部導覽列 中型和展開視窗中垂直導覽邊欄的視窗大小。 重新調整對話方塊的位置,方便在所有螢幕上存取。
將內容整理到窗格中,即可啟用多窗格版面配置,例如: 顯示動態內容的清單-詳細資料和輔助窗格。
如果您不是使用內容窗格,不要只延展 UI 元素來填滿畫面
可用的顯示空間。長行文字難以閱讀。延展
按鈕設計不良使用 Modifier.fillMaxWidth
時,請勿使用
因為這是所有顯示大小都適用的行為。
輸入裝置
使用者不會只透過觸控螢幕與應用程式互動,
自動調整應用程式支援外接鍵盤、滑鼠和觸控筆,以提供 提升使用者體驗,並幫助他們在各種板型規格的裝置上 各種類型的資料
利用 Android 架構的內建功能, 瀏覽鍵盤分頁,以及滑鼠或觸控板的點選、選取和捲動功能。發布 鍵盤快速鍵輔助程式中檢查應用程式的鍵盤快速鍵。
使用 Jetpack Material 3 程式庫,方便使用者寫入
使用觸控筆的 TextField
元件。
不要指定其他輸入法。不要導入無障礙功能 以負載平衡機制分配流量 即可降低應用程式發生效能問題的風險
摘要
- 使用 Compose 和 Material 3 自動調整程式庫建構應用程式
- 根據視窗大小類別的基礎版面配置
- 建立多窗格版面配置
- 讓您的應用程式可調整大小。
- 一律不鎖定活動方向
- 不要限制顯示比例
- 支援觸控以外的輸入方式
- 避免使用已淘汰的 API
✓ 執行使用者期待: 根據使用者日常所需的各種裝置,將您的應用程式最佳化。
✗ 別等待。現在就開始使用吧!