Android N多窗口支持


Android N 可以同時顯示多個應用窗口。 在手機上,兩個應用可以在“分屏”模式中左右並排或上下並排顯示。例如,用戶可以 在上面窗口聊QQ,下面窗口發送短信。

如圖所示,兩個app在分屏模式中上下顯示:
MultiWindow

如何讓你的app支持多窗口?

如果你的app支持Adnroid N,在AndroidManifest.xml文件中對 節點設置android:resizeableActivity就能啟用或者禁用多窗口顯示:

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標簽中設置 標簽。 標簽支持以下幾種屬性,這些屬性影響 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 N多窗口

如果你想第一時間看我的后期文章,掃碼關注公眾號,每周不定期推送Android開發實戰教程文章...

      Android開發666 - 安卓開發技術分享
             掃描二維碼加關注

Android開發666


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM