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更新了什么。
源碼下載
如果你想第一時間看我的后期文章,掃碼關注公眾號,每周不定期推送Android開發實戰教程文章...
Android開發666 - 安卓開發技術分享
掃描二維碼加關注