Android 應用程式現在可在各種裝置 (例如手機、平板電腦、折疊式裝置、電腦、車輛和電視) 上執行,並在大螢幕上支援多種視窗模式 (例如分割畫面和電腦視窗模式),因此開發人員應建構可適應任何螢幕和視窗大小的 Android 應用程式,無論裝置方向為何。在現今的多裝置世界中,限制螢幕方向和大小調整等模式過於嚴格。
忽略螢幕方向、可調整大小和顯示比例限制
如果應用程式指定 Android 17 (API 級別 37) 以上版本,則在最小寬度大於 600dp 的螢幕上,螢幕方向、大小調整和顯示比例限制不再適用。無論顯示比例或使用者偏好的螢幕方向為何,應用程式都會填滿整個顯示視窗,且不會使用左右黑邊。
Android 17 移除了 Android 16 提供的暫時開發人員選擇不採用大螢幕裝置螢幕方向和大小調整限制。
這項異動會導入新的標準平台行為。Android 正在朝向一種模式發展,預期應用程式能適應各種螢幕方向、顯示大小和顯示比例。固定方向或大小調整限制等限制,會阻礙應用程式的適應性。讓應用程式具備自動調整功能,提供最佳使用者體驗。
您也可以使用應用程式相容性架構,並啟用 UNIVERSAL_RESIZABLE_BY_DEFAULT 相容性旗標,測試這項行為。
常見破壞性變更
忽略螢幕方向、大小調整和顯示比例限制,可能會影響應用程式在某些裝置上的 UI,尤其是專為鎖定直向的小型版面配置設計的元素。例如,應用程式可能會出現版面配置拉伸、動畫和元件超出螢幕範圍等問題。您對顯示比例或螢幕方向所做的任何假設,都可能導致應用程式出現視覺問題。進一步瞭解如何避免這些問題,並改善應用程式的自動調整行為。
在橫向摺疊式裝置上,或在多視窗模式、電腦分割視窗或外接螢幕等情境下計算顯示比例時,常見的問題是相機預覽畫面會延展、旋轉或裁剪。這類問題通常發生在大螢幕和摺疊式裝置上,因為應用程式會假設相機功能 (例如顯示比例和感應器方向) 與裝置功能 (例如裝置方向和自然方向) 之間存在固定關係。進一步瞭解如何管理相機預覽畫面。
允許裝置旋轉會導致更多活動重新建立,如果未妥善保留,可能會遺失使用者狀態。如要瞭解如何正確儲存 UI 狀態,請參閱「儲存 UI 狀態」。
實作詳細資料
在全螢幕和多視窗模式下,大螢幕裝置會忽略下列資訊清單屬性和執行階段 API:
screenOrientationresizeableActivityminAspectRatiomaxAspectRatiosetRequestedOrientation()getRequestedOrientation()
系統會忽略下列 screenOrientation, setRequestedOrientation() 和 getRequestedOrientation() 的值:
portraitreversePortraitsensorPortraituserPortraitlandscapereverseLandscapesensorLandscapeuserLandscape
android:resizeableActivity="false",
android:minAspectRatio 和 android:maxAspectRatio 對顯示大小調整功能沒有影響。
例外狀況
在下列情況下,Android 17 的螢幕方向、大小調整和顯示比例限制不適用:
- 遊戲 (根據
android:appCategory旗標) - 使用者在裝置的顯示比例設定中,明確選擇採用應用程式的預設行為
- 最小寬度小於
sw600dp的螢幕