Android N 可以同時顯示多個應用視窗。 在手機上,兩個應用可以在“分屏”模式中左右併排或上下併排顯示。例如,用戶可以 在上面視窗聊QQ,下麵視窗發送簡訊。 如圖所示,兩個app在分屏模式中上下顯示: 如何讓你的app支持多視窗? 如果你的app支持Adnroid N,在AndroidMani ...
Android N 可以同時顯示多個應用視窗。 在手機上,兩個應用可以在“分屏”模式中左右併排或上下併排顯示。例如,用戶可以 在上面視窗聊QQ,下麵視窗發送簡訊。
如圖所示,兩個app在分屏模式中上下顯示:
如何讓你的app支持多視窗?
如果你的app支持Adnroid N,在AndroidManifest.xml文件中對
android:resizeableActivity=["true" | "false"]
如果這個屬性的值為true,Activity能分屏和自由模式啟動,如果這個屬性的值為false,Activity不支持多視窗模式。
如果你的app支持Adnroid N,但是沒有對該屬性設置值。則該屬性的值預設為true。也就是預設支持多視窗模式。
用戶可以通過以下方式切換到多視窗模式
- 若用戶打開 Overview 屏幕並長按 Activity 標題,則可以拖動該 Activity 至屏幕突出顯示的區域,使 Activity 進入多視窗模式。
- 若用戶長按 Overview 按鈕,設備上的當前 Activity 將進入多視窗模式,同時將打開 Overview 屏幕,用戶可在該屏幕中選擇要共用屏幕的另一個 Activity。
多視窗生命周期
多視窗模式不會更改 Activity 生命周期。
在多視窗模式中,在指定時間只有最近與用戶交互過的 Activity 為活動狀態。 該 Activity 將被視為頂級 Activity。 所有其他 Activity 雖然可見,但均處於暫停狀態。 但是,這些已暫停但可見的 Activity 在系統中享有比不可見 Activity 更高的優先順序。 如果用戶與其中一個暫停的 Activity 交互,該 Activity 將恢復,而之前的頂級 Activity 將暫停。
多視窗模式下的佈局屬性
對於 Android N,可以在activity標簽中設置
- android:defaultWidth 多視窗模式下的預設寬度。
- android:defaultHeight 多視窗模式下的預設高度。
- android:gravity 多視窗模式下的初始位置。
- android:minimalHeight、android:minimalWidth 多視窗模式下的最小高度和最小寬度。如果用戶在分屏模式中移動分界線,使 Activity 尺寸低於指定的最小值,系統會將 Activity 裁剪為用戶請求的尺寸。
例如,以下配置如何指定 Activity 在多視窗模式中顯示時 Activity 的預設大小、位置和最小尺寸:
<activity android:name=".MyActivity">
<layout android:defaultHeight="500dp"
android:defaultWidth="600dp"
android:gravity="top|end"
android:minimalHeight="450dp"
android:minimalWidth="300dp" />
</activity>
多視窗變更通知和查詢
Activity 類中添加了以下新方法,以支持多視窗顯示。
Activity.isInMultiWindowMode() 判斷是否處於多視窗模式
Activity.onMultiWindowModeChanged() 進入或退出多視窗模式時會回調這個方法。
其實多視窗在工作中應該使用的機會不大,畢竟手機屏幕比較小,分屏都看不到什麼界面了。不過作為開發者我們有必要去瞭解一下Android 7.0更新了什麼。