欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談 Android 7.0 多窗口分屏模式的實(shí)現(xiàn)

 更新時(shí)間:2020年03月25日 08:27:06   作者:木魚舟  
這篇文章主要介紹了淺談 Android 7.0 多窗口分屏模式的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

從 Android 7.0 開始,Google 推出了一個(gè)名為“多窗口模式”的新功能,也就是我們常說(shuō)的“分屏模式”。那么,這個(gè)功能有什么用呢?作為開發(fā)者,我們又能做些什么?

Android 7.0 添加了對(duì)同時(shí)顯示多個(gè) APP 的支持。在手持設(shè)備上,兩個(gè) APP 可以在分屏模式下并排運(yùn)行。

嗯,大概就是這樣:

分屏模式的適配

我們?nèi)绾尾拍茏屪约旱?APP 支持分屏模式呢?

若項(xiàng)目的 targetSDKVersion 大于等于24,那么可以在 AndroidManifest.xml 文件的 Application 或 Activity 節(jié)點(diǎn)通過(guò)設(shè)置 android:resizeableActivity=["true" | "false"] 來(lái)控制整個(gè) APP 或某個(gè) Activity 是否支持分屏。該屬性的默認(rèn)值是 true ,也就是說(shuō),如果不設(shè)置該屬性,在支持分屏的設(shè)備上,默認(rèn)是可以分屏的。

若項(xiàng)目的 targetSDKVersion 小于24,那么運(yùn)行在支持分屏的設(shè)備上,默認(rèn)可以分屏。這時(shí)如果需要禁止分屏,需要在 AndroidManifest.xml 文件的 Application 或 Activity 節(jié)點(diǎn)設(shè)置 android:screenOrientation 屬性來(lái)控制整個(gè) APP 或 某個(gè) Activity 的屏幕方向,從而控制整個(gè) APP 或某個(gè) Activity 禁止分屏。

分屏模式的監(jiān)聽

能不能在代碼中監(jiān)聽 APP 是否進(jìn)入分屏模式呢?答案是能。由于 APP 在分屏模式發(fā)生改變時(shí)會(huì)執(zhí)行 onMultiWindowModeChanged 方法,因此我們?cè)?Activity 中重寫這個(gè)方法就可以實(shí)現(xiàn)分屏的監(jiān)聽了。

@Override
 public void onMultiWindowModeChanged(boolean isInMultiWindowMode) {
  super.onMultiWindowModeChanged(isInMultiWindowMode);
  // 判斷當(dāng)前是否為分屏模式
  if (isInMultiWindowMode) {
   // 已進(jìn)入分屏模式
  } else {
   // 未進(jìn)入分屏模式
  }
 }

分屏模式下的生命周期

需要注意的是:進(jìn)入和退出分屏模式時(shí),Activity 的生命周期。

進(jìn)入分屏模式時(shí),Activity 的生命周期:

onPause()->onStop()->onMultiWindowModeChanged()->onDestroy()->onCreate()->onStart()->onResume()->onPause()

退出分屏模式時(shí),Activity 的生命周期:

onStop()->onDestroy()->onCreate()->onStart()->onResume()->onPause()->onMultiWindowModeChanged()->onResume()

可以看出,在進(jìn)入分屏模式時(shí),Activity 先執(zhí)行 onMultiWindowModeChanged 方法,再重建自己。在退出分屏模式時(shí),Activity 先重建自己,再執(zhí)行 onMultiWindowModeChanged 方法。

這樣呢會(huì)有一個(gè)問(wèn)題,我們的 APP 進(jìn)入分屏模式時(shí),在 onMultiWindowModeChanged 方法中如果有對(duì) UI 等的操作,經(jīng)過(guò)之后的自動(dòng)重建就沒(méi)有效果了。為了防止這種情況,需要在 AndroidManifest.xml 的 Activity 節(jié)點(diǎn)設(shè)置以下屬性:

android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"

設(shè)置了這個(gè)屬性,在進(jìn)入分屏模式時(shí),Activity 就不會(huì)自動(dòng)重建了。

分屏模式的判斷

我們可以通過(guò) Activity 的 isInMultiWindowMode() 方法獲取當(dāng)前是否進(jìn)入分屏模式,該方法返回 true 表示當(dāng)前已進(jìn)入分屏模式,返回 false 則表示當(dāng)前未進(jìn)入分屏模式。

if (isInMultiWindowMode()) {
  // 已進(jìn)入分屏模式
 } else {
  // 未進(jìn)入分屏模式
 }

分屏模式下打開 Activity

如果 APP 在分屏模式下打開 Activity 時(shí),為 Intent 設(shè)置了 Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT 和 Intent.FLAG_ACTIVITY_NEW_TASK 標(biāo)志,那么新打開的 Activity 將顯示在當(dāng)前 APP 的另一側(cè)。例如下面的代碼:

Intent intent = new Intent(this, NewActivity.class);
 intent.setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT|Intent.FLAG_ACTIVITY_NEW_TASK);
 startActivity(intent);

如圖,原始 Activity 分屏后顯示在屏幕上半部分,新打開的 Activity 顯示在原始 Activity 下方(屏幕的下半部分)。

到此這篇關(guān)于淺談 Android 7.0 多窗口分屏模式的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Android7.0 多窗口分屏內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android studio導(dǎo)入項(xiàng)目的方法詳解(簡(jiǎn)單快速)

    Android studio導(dǎo)入項(xiàng)目的方法詳解(簡(jiǎn)單快速)

    最近開課移動(dòng)互聯(lián)網(wǎng)應(yīng)用開發(fā),實(shí)驗(yàn)課老師發(fā)了代碼讓我們導(dǎo)入,在網(wǎng)上找了各種方法,發(fā)現(xiàn)不是每一個(gè)項(xiàng)目都適合,有些能夠成功,有些還是有錯(cuò),頭大的很。后面發(fā)現(xiàn)一個(gè)比較簡(jiǎn)單的方法,沒(méi)翻過(guò)車,新手可以試試
    2017-06-06
  • Android CoordinatorLayout詳解及實(shí)例代碼

    Android CoordinatorLayout詳解及實(shí)例代碼

    這篇文章主要介紹了Android CoordinatorLayout詳解及實(shí)例代碼的相關(guān)資料,CoordinatorLayout基本實(shí)現(xiàn)兩個(gè)功能: 作為頂層布局 和調(diào)度協(xié)調(diào)子布局,這里詳細(xì)介紹此部分知識(shí),需要的朋友可以參考下
    2016-12-12
  • Android使用GPS獲取用戶地理位置并監(jiān)聽位置變化的方法

    Android使用GPS獲取用戶地理位置并監(jiān)聽位置變化的方法

    這篇文章主要介紹了Android使用GPS獲取用戶地理位置并監(jiān)聽位置變化的方法,實(shí)例分析了Android編程中GPS定位的實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下
    2015-12-12
  • Android如何獲取本地文件目錄

    Android如何獲取本地文件目錄

    這篇文章主要介紹了Android如何獲取本地文件目錄,通過(guò)點(diǎn)擊按鈕,獲取本地文件目錄,可以選擇圖片,展示選取的對(duì)應(yīng)圖片和展示存儲(chǔ)路徑,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • 全面解析Android的開源圖片框架Universal-Image-Loader

    全面解析Android的開源圖片框架Universal-Image-Loader

    這篇文章主要介紹了Android的開源圖片框架Universal-Image-Loader,Universal-Image-Loader在GitHub上開源,其提供的圖片加載功能令人印象相當(dāng)深刻,需要的朋友可以參考下
    2016-04-04
  • Android 第三方登錄、分享(ShareSDK、友盟)

    Android 第三方登錄、分享(ShareSDK、友盟)

    這篇文章主要為大家詳細(xì)介紹了Android 第三方登錄、分享,分別使用sharesdk和友盟來(lái)實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • android多開器解析與檢測(cè)實(shí)現(xiàn)方法示例

    android多開器解析與檢測(cè)實(shí)現(xiàn)方法示例

    最近有業(yè)務(wù)上的要求,要求app在本地進(jìn)行諸如軟件多開、hook框架、模擬器等安全檢測(cè),防止作弊行為,下面這篇文章主要給大家介紹了關(guān)于android多開器解析與檢測(cè)實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • Android中刪除sdcard里文件的命令

    Android中刪除sdcard里文件的命令

    這篇文章主要介紹了Android中刪除sdcard里文件的命令,本文講解了刪除android模擬器或手機(jī)上的sd卡文件的方法,需要的朋友可以參考下
    2015-04-04
  • Android實(shí)現(xiàn)圖片拖動(dòng)效果

    Android實(shí)現(xiàn)圖片拖動(dòng)效果

    本文主要介紹了Android實(shí)現(xiàn)圖片拖動(dòng)效果的實(shí)例,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03
  • Android如何實(shí)現(xiàn)鎖屏狀態(tài)下彈窗

    Android如何實(shí)現(xiàn)鎖屏狀態(tài)下彈窗

    在鎖屏狀態(tài)下彈窗的效果我們平時(shí)并不少見,如QQ、微信和鬧鐘等,但是Android開發(fā)者要怎么實(shí)現(xiàn)這一功能呢?下面一起來(lái)看看。
    2016-08-08

最新評(píng)論