在 Android 7.0 以上版本中,裝置可透過多視窗同時顯示多個應用程式。Android 支援三種多視窗設定:
- Freeform 可讓使用者動態調整活動窗格的大小,並在畫面上顯示兩個以上的應用程式。
- 分割畫面是預設的多視窗實作方式,可提供兩個活動窗格,讓使用者放置應用程式。
- 子母畫面 (PIP) 可讓 Android 裝置在使用者與其他應用程式互動時,在小視窗中播放影片內容。
實作
Android 7.0 以上版本預設會啟用多視窗支援功能。如要停用這項功能,請在裝置的 config.xml 檔案中將 config_supportsMultiWindow
標記設為 false
。
在所有低 RAM 裝置 (宣告 ActivityManager.isLowRam()
的裝置) 上,多重視窗功能預設為停用。低 RAM 裝置會忽略 config_supportsMultiWindow
標記的值。
任意形式
使用 config_supportsMultiWindow
旗標啟用多視窗模式後,裝置製造商可以允許任意形式的視窗。這個模式最適合用於平板電腦等大型裝置。
如要支援自由格式模式,請在 /android/frameworks/base/core/java/android/content/pm/PackageManager.java
中啟用 PackageManager#FEATURE_FREEFORM_WINDOW_MANAGEMENT
系統功能,並在 config.xml.
中將 config_freeformWindowManagement
設為 true
<bool name="config_freeformWindowManagement">true</bool>
在 Android 16 中,原始設備製造商 (OEM) 可使用「Enable desktop windowing」,在裝置上支援自由形式多視窗設定。
啟用電腦視窗化模式
如要啟用裝置的電腦視窗功能,請按照下列步驟操作:
- 確認裝置支援自由格式視窗功能。
-
在
config.xml
中,將設定疊加標記config_isDesktopModeSupported
標記設為true
:<bool name="config_isDesktopModeSupported">true</bool>
-
如要在裝置的內部螢幕上啟用自由形式視窗功能,請將設定覆蓋層標記
config_canInternalDisplayHostDesktops
設為true
。config.xml
如果config_isDesktopModeSupported
為false
,系統會忽略這個標記:<bool name="config_canInternalDisplayHostDesktops">true</bool>
啟用工作限制
請按照下列步驟設定桌面視窗模式支援的最大工作數量:
- 啟用電腦視窗功能。
-
將
config.xml
中的設定重疊標記config_maxDesktopWindowingActiveTasks
設為支援的工作數量上限。如要支援無限數量的任務,請將旗標設為0
的預設值:<bool name="config_maxDesktopWindowingActiveTasks">4</integer>
分割畫面
多視窗的預設體驗為分割畫面模式,在該模式下,系統 UI 會在裝置的正/橫向中間分割。視裝置方向而定,使用者可以將分隔線從左到右或從上到下拖曳,調整視窗大小。
啟用分割畫面後,裝置製造商可以選擇啟用自由形式或 PIP。
Android 8.0 以上版本會在使用者輕觸「Home」時壓縮啟動器,藉此改善分割畫面。如要進一步瞭解實作方式,請參閱「分割畫面互動」。
子母畫面
使用 config_supportsMultiWindow
標記啟用多視窗模式後,裝置製造商就能支援子母畫面,讓使用者在瀏覽其他活動時觀看影片。雖然這項功能適用於 Android TV 裝置,但其他類型的裝置也可能支援這項功能。
如要支援 PIP,請在 /android/frameworks/base/core/java/android/content/pm/PackageManager.java
中啟用 PackageManager#FEATURE_PICTURE_IN_PICTURE
系統功能。
如要進一步瞭解搭載 Android 8.0 以上版本的裝置的 PIP 實作方式,請參閱「子母畫面」頁面。
系統 UI
根據多視窗開發人員說明文件支援所有標準系統使用者介面。
應用程式
如要支援預先載入應用程式的多視窗模式,請參閱 Android 開發人員說明文件。
驗證
如要驗證多視窗實作方式,請執行相關 CTS 測試,並按照多視窗測試操作說明操作。