Android7.0分屏適配介紹

本文章抄送Androiddeveloper網(wǎng)站煮纵,目的是為方便學(xué)習(xí)記錄。

切換到多窗口模式方式

- 若用戶打開OverView屏幕并長按Activity標(biāo)題消玄,則可以拖動(dòng)該Activity至屏幕突出顯示的區(qū)域荔燎,使Activity進(jìn)入多窗口模式。

- 若用戶長按Overview按鈕方庭,設(shè)備上的當(dāng)前Activity將進(jìn)入多窗口模式厕吉,同時(shí)將打開Overview屏幕,用戶可在該屏幕中選擇要共享屏幕的另一個(gè)Activity械念。

多窗口生命周期

多窗口模式不會(huì)更改Activity生命周期头朱。

在多窗口模式中,在指定時(shí)間只有最近與用戶交互過的Activity為活動(dòng)狀態(tài)龄减。該Activity將被視為頂級Activity项钮。所有其他Activity雖然可見。但均處于暫停狀態(tài)希停。但是烁巫,這些已經(jīng)暫停但可見的Activity在系統(tǒng)中享有比不可見Activity更高優(yōu)先級。如果用戶與其中一個(gè)暫停的Activity交互宠能,改Activity將恢復(fù)亚隙,而之前的頂級Activity將暫停。

> 注:在多窗口模式中违崇,用戶仍可以看到處于暫停狀態(tài)的應(yīng)用阿弃,诊霹。應(yīng)用在暫停狀態(tài)下可能仍需要繼續(xù)其操作。例如:處于暫停模式但可見的視屏播放應(yīng)用繼續(xù)顯示視頻渣淳。因此脾还,我們建議播放視頻的Activity不要暫停其onPauser()處理程序中的視頻。應(yīng)暫停onStop()中的視頻入愧,并恢復(fù)onStart()中的視頻播放鄙漏。

如處理運(yùn)行時(shí)變更中所述,用戶使用多窗口模式顯示應(yīng)用時(shí)砂客,系統(tǒng)將通知Activity發(fā)生配置變更泥张。這也會(huì)發(fā)生在當(dāng)用戶調(diào)整應(yīng)用大小,或?qū)?yīng)用恢復(fù)到全屏幕模式。該變更與系統(tǒng)通知應(yīng)用設(shè)備從縱向模式切換到橫向模式時(shí) 的Activity生命周期影響基本相同,但設(shè)備不僅僅是交換尺寸明棍,而是會(huì)變更尺寸画切。如處理運(yùn)行時(shí)變更中所述,您的Activity可以自行處理配置變更,或許系統(tǒng)銷毀Activity,并以新的尺寸重新創(chuàng)建改Activity。

如果用戶調(diào)整窗口大小芒炼,并在任意緯度放大窗口尺寸,系統(tǒng)將調(diào)整Activity以匹配用戶操作术徊,同時(shí)根據(jù)需要發(fā)布運(yùn)行時(shí)變更本刽。如果應(yīng)用在心公開區(qū)域的回執(zhí)滯后,系統(tǒng)將使用windowBackground屬性或默認(rèn)windowBackground樣式屬性指定的顏色暫時(shí)填充該區(qū)域赠涮。

針對多窗口模式配置應(yīng)用

如果您的應(yīng)用面向Android N,您可以對應(yīng)用的Activity是否支持多窗口顯示以及顯示的方式進(jìn)行配置子寓。您可以在清單文件中設(shè)置屬性,以控制大小和布局笋除。根據(jù)Activity的屬性設(shè)置適用于其他任務(wù)棧中所有Activity斜友。例如,如果根據(jù)Activity已a(bǔ)ndroid.resizeableActivity設(shè)定為true垃它,則任務(wù)棧中所有的Activity都將調(diào)整大小鲜屏。

> 注:如果您使用低于Android N版本的SDK構(gòu)建應(yīng)用,則用戶再多窗口模式中適用應(yīng)用時(shí)国拇,系統(tǒng)將強(qiáng)制調(diào)整應(yīng)用的大小洛史。系統(tǒng)將顯示對話框,提示用戶應(yīng)用可能會(huì)發(fā)生異常贝奇。系統(tǒng)將不會(huì)調(diào)整定向應(yīng)用的大泻绶啤;如果用戶嘗試再多窗口模式下打開定向應(yīng)用掉瞳,應(yīng)用將全屏顯示毕源。

android.resizeableActivity

在清單的<activity>或<application>節(jié)點(diǎn)中設(shè)置該屬性,啟用或禁用多窗口顯示:

? ? android:resizeableActivity=["true" | "false"]

?布局屬性?

對于Android N陕习,<layout>清單元素支持一下幾種屬性霎褐,這些屬性影響Activity在多窗口模式中的行為:

android:defaultWidth //以自由形狀模式啟動(dòng)時(shí)Activity的默認(rèn)高度

android:defaultHeight // 以自由形式模式啟動(dòng)時(shí)Activity的默認(rèn)高度

android:gravity // 以自由形狀模式啟動(dòng)時(shí)Activity的初始位置。

android:minimalHeight该镣、android:minimalWidth // 分屏和自由形狀模式中Activity的最小高度和最小寬度冻璃。

?再多窗口模式中運(yùn)行應(yīng)用

Android N添加了新功能,以支持可在多窗口模式中運(yùn)行應(yīng)用损合。

多窗口模式中被禁用的功能

在設(shè)備處于多窗口模式中時(shí)省艳,某些功能會(huì)被禁用或者忽略,因?yàn)檫@些功能對于其他Activity或者應(yīng)用共享屏幕的Activity而言沒有意義嫁审。此功能包括:

- 某些系統(tǒng)UI自定義選項(xiàng)將被禁用跋炕;例如,在非全屏模式中律适,應(yīng)用將無法隱藏狀態(tài)欄辐烂。

- 系統(tǒng)將忽略對 android:screenOrientation屬性所作用的更改。


多窗口變更通知和查詢?

Activity類中添加一下新方法捂贿,以支持多窗口顯示纠修。有關(guān)方法詳細(xì)信息,請閱讀NPreview SDK參考

Activity.isInMultiWindowMode() // 調(diào)用該方法以確認(rèn)Activity是否處于多窗口模式厂僧。

Activity.isInPictureInPictureMode() // 調(diào)用該方法以確認(rèn)Activity是否處于畫中畫模式扣草。

> 注:畫中畫模式是多窗口模式的特列。如果myActivity.isInPictureInPictureMode()返回true颜屠,則myActivity.isInMultiWindowMode()也返回true辰妙。

Activity.onMultWondowModeChanged() // Activity進(jìn)入或退出多窗口模式時(shí)系統(tǒng)將調(diào)用此方法。在Activity進(jìn)入多窗口模式時(shí)汽纤,系統(tǒng)向該方法傳遞true值上岗,退出多窗口模式時(shí),則傳遞false值蕴坪。

Activity.onPictureInPictureModeChanged() // Activity進(jìn)入或退出畫中畫模式時(shí)系統(tǒng)將調(diào)用該方法肴掷。在Activity進(jìn)入畫中畫模式時(shí),系統(tǒng)向該方法傳遞true值背传,退出畫中畫模式時(shí)呆瞻,則傳遞false值。

進(jìn)入畫中畫模式?

如需要在畫中畫模式中啟動(dòng)Activity径玖,請調(diào)用新方法Activity.enterPictureInPictureMode()痴脾。如果設(shè)備不支持畫中畫模式,則此方法無效梳星。

在多窗口模式中啟動(dòng)新的Activity?

在啟動(dòng)新Activity時(shí)赞赖,用戶可以提示系統(tǒng)如果可能滚朵,應(yīng)將新的Activity顯示在當(dāng)前Activity旁邊。要執(zhí)行此操作前域,可以使用標(biāo)志`Intent.FLAG_ACTIVITY_TO_ADJACENT`辕近。傳遞此標(biāo)志將請求一下行為:

- 如果設(shè)備處于分屏狀態(tài),系統(tǒng)會(huì)嘗試在啟動(dòng)系統(tǒng)的Activity旁邊創(chuàng)建新的Activity匿垄,這樣兩個(gè)Activity將共享屏幕移宅。系統(tǒng)并不一定實(shí)現(xiàn)此操作。但如果可以椿疗,系統(tǒng)將使兩個(gè)Activity處于相鄰的位置漏峰。

- 如果設(shè)備不處于分屏狀態(tài),側(cè)設(shè)置將無效届榄。

如果設(shè)備處于自由形狀模式浅乔,在啟動(dòng)新Activity時(shí),用戶可以調(diào)用ActivityOptions.setLaunchBounds()指定新Activity的尺寸和位置痒蓬,如果設(shè)備不處于多窗口模式童擎,則該方法無效。

>注:如果您在任務(wù)棧中啟動(dòng)Activity攻晒,改Activity將替換屏幕上的Activity顾复,并繼承其所有的多窗口屬性。如果要在多窗口模式中以單獨(dú)的窗口啟動(dòng)新的Activity鲁捏,則必須在新的任務(wù)棧啟動(dòng)此Activity芯砸。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市给梅,隨后出現(xiàn)的幾起案子假丧,更是在濱河造成了極大的恐慌,老刑警劉巖动羽,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件包帚,死亡現(xiàn)場離奇詭異,居然都是意外死亡运吓,警方通過查閱死者的電腦和手機(jī)渴邦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拘哨,“玉大人谋梭,你說我怎么就攤上這事【肭啵” “怎么了瓮床?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我隘庄,道長踢步,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任峭沦,我火速辦了婚禮贾虽,結(jié)果婚禮上逃糟,老公的妹妹穿的比我還像新娘吼鱼。我一直安慰自己,他們只是感情好绰咽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布菇肃。 她就那樣靜靜地躺著,像睡著了一般取募。 火紅的嫁衣襯著肌膚如雪琐谤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天玩敏,我揣著相機(jī)與錄音斗忌,去河邊找鬼。 笑死旺聚,一個(gè)胖子當(dāng)著我的面吹牛织阳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播砰粹,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼唧躲,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了碱璃?” 一聲冷哼從身側(cè)響起弄痹,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嵌器,沒想到半個(gè)月后肛真,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡爽航,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年蚓让,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岳掐。...
    茶點(diǎn)故事閱讀 39,727評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凭疮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出串述,到底是詐尸還是另有隱情执解,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站衰腌,受9級特大地震影響新蟆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜右蕊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一琼稻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧饶囚,春花似錦帕翻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至规惰,卻和暖如春睬塌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背歇万。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工揩晴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人贪磺。 一個(gè)月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓硫兰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缘挽。 傳聞我的和親對象是個(gè)殘疾皇子瞄崇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一定要經(jīng)常性地去反思、提醒自己壕曼,不然生活很難朝好的方向發(fā)展苏研、或者朝好方向發(fā)展的效率太低。 很久沒正式對每天進(jìn)行總結(jié)...
    文建偉CZYH閱讀 199評論 0 0
  • dapp圈這個(gè)月明顯感覺到秋風(fēng)瑟瑟腮郊,游戲同質(zhì)化加速了玩家分流跟視覺疲勞摹蘑。剔除dice,很少有項(xiàng)目能做到100weo...