那麼,如果我們的應用要支援這個模式並且不讓這個訊息彈出來,要怎麼做呢?
很簡單,只需要在activity宣告的時候加入乙個屬性resizeableactivity,並且設定其值為true即可:
android:name=".mainactivity"
android:resizeableactivity="true">
android:name="android.intent.action.main"/>
android:name="android.intent.category.launcher"/>
intent-filter>
activity>
這個屬性的設定會導致三種情況:
① 如果不宣告這個屬性,那麼預設允許進入多視窗模式,但是會有上面的提示(第一次執行的時候)
② 如果宣告了這個屬性,並設定值為true,那麼允許進入多視窗模式,並且不會提示
③ 如果宣告了這個屬性,並設定值為false,那麼不允許進入多視窗模式,只允許全屏顯示
若應用targetsdkversion為n,則該應用下所有activity的resizeableactivity屬性均預設為true,即該應用下的所有activity均能支援多視窗顯示。
若activity1配置resizeableactivity為true,activity1、activity2、activity3均處於同一task,則activity2和activity3均能在多視窗下顯示(即使activity2和activity3沒有配置resizeableactivity屬性)。
若activity2需全屏顯示,則需按以下步驟配置:
1、設定resizeableactivity為false
2、activity1啟動activity2時,設定flag_activity_new_task,activity2執行在單獨的task,即和activity1不在同一task。
多視窗下對應用視窗大小縮放,會觸發configuration變化,可能的變化有screensize、smallestscreensize、layoutdirection、screenlayout、orientation,建議activity的manifest配置configchanges,否則activity將被銷毀重建,可能導致卡頓和跟體驗差。
我們知道,values-sw400dp,sw400dp就表明了這個value是在螢幕最短邊大於等於400dp的時候生效(前提是有其他不同的value資料夾)
因此在configchanges時候,應用便會去自動尋找匹配的alues值,從而改變我們layout
在寬度變化的時候,我們的應用可能最小dp只有200dp這樣,而以往我們很少適配200dp的螢幕
如何知道是否處於多視窗模式
說明:n版本api activity類新增inmultiwindow方法,判斷當前activity是否處於多視窗模
式(split-screen,freeform,pip)
如何知道是否處於pip模式
說明:n版本api activity類新增inpictureinpicture方法,判斷當前activity是否處於pip模式。
如何監聽是否進入多視窗模式
說明:n版本api activity類新增onmultiwindowmodechanged方法,監聽activity是否進入
多視窗模式。
注:inmultiwindow為true,則表示處於多視窗模式(split-screen,freeform,pip);否則,已退出多視窗模式。
如何監聽是否進入pip模式
說明:n版本api activity類新增onpictureinpicturechanged方法,監聽activity是否進入
pip模式。
inpictureinpicture為true,則表示處於pip模式;否則,已退出pip模式。如果activity要進入pip模式,可通過呼叫 方法,使activity自身
進入pip模式,前提條件是該activity的 為true。
要在另乙個視窗中開啟乙個activity,接著我們只需要給這個intent設定乙個標籤,完整**如下:
intent
intent = new intent(intent.action_view);
intent.setdata(geolocation);
intent.addflags(intent.flag_activity_launch_adjacent);
這個時候我們再執行,呼叫的視窗會在另乙個視窗中被開啟。 vim多視窗操作 建立新的視窗
vim中,預設的多視窗開啟,是橫向分割視窗。1 new 命令 new 新建乙個未命名視窗 new name 新建乙個名為name的視窗 2 split命令 橫向分割視窗 split name 在當前位置開啟name視窗 將原來檔案向下移動 sp name 是split的縮寫 與split功能相同 如...
多視窗模式程式設計介紹
多視窗會改變應用大小,先啟動activity,再進入多視窗模式,activity會重建。重建後,進入onpause方法。android name mainactivity android configchanges orientation keyboardhidden screensize scre...
多視窗模式程式設計的一些知識
在android7.0系統中引入了乙個非常有特色的功能多視窗模式,它允許我們在同乙個螢幕中同時開啟兩個應用程式。進入和退出多視窗模式 進入多視窗模式 退出多視窗模式 多視窗模式下的生命週期 多視窗模式並不會改變活動原有的生命週期,只是會將使用者最近互動過的那個活動設定為執行狀態,而將多視窗模式下另外...