你說你看到了沉浸模式钥组,你可能只是見到鬼了

Bilibili for Android 的 Redesign 文章正在路上共屈,沒有那么快完成绑谣,那么我想先寫一篇文章來談?wù)勎覐娬{(diào)了很多遍的“沉浸模式”問題。

我都不敢相信拗引,現(xiàn)在 2015 年快過一半了借宵,還有不少所謂 Android 愛好者分不清“沉浸模式”和“透明欄”之間的區(qū)別。

那好矾削,我們來好好捋一捋“沉浸模式”究竟是個什么玩意壤玫。

什么是沉浸模式?

從 Android 4.4 開始怔软,Android 為 "setSystemUiVisibility()" 提供了一個新的標記 "SYSTEM_UI_FLAG_IMMERSIVE"垦细,就是我們所談的 "Immersive Mode",也就是沉浸模式挡逼,全稱為 "Immersive Full-Screen Mode" 括改。

Immersive Full-Screen Mode

Google 提供這個新模式的初衷,是為了讓應(yīng)用能夠?qū)崿F(xiàn)真正完整的全屏模式體驗家坎。

之前 Android 靠兩個標記實現(xiàn)全屏模式嘱能,一個是 "SYSTEM_UI_FLAG_FULLSCREEN",另一個是 "SYSTEM_UI_FLAG_HIDE_NAVIGATION"(僅適用于使用導(dǎo)航欄的設(shè)備虱疏,即虛擬按鍵) 惹骂。

這兩個標記都存在一些問題,例如使用第一個標記的時候做瞪,除非 App 提供暫時退出全屏模式的功能(例如部分電子書軟件中點擊一次屏幕中央位置)对粪,用戶是一直都沒法看見狀態(tài)欄的右冻。這樣,如果用戶想去看看通知中心有什么通知著拭,那就必須點擊一次屏幕纱扭,顯示狀態(tài)欄,然后才能調(diào)出通知中心儡遮。

而第二個標記的問題在于乳蛾,Google 認為導(dǎo)航欄對于用戶來說是十分重要的,所以只會短暫隱藏導(dǎo)航欄鄙币。一旦用戶做其他操作肃叶,例如點擊一次屏幕,導(dǎo)航欄就會馬上被重新調(diào)出十嘿。這樣的設(shè)定對于看圖軟件因惭,視頻軟件等等沒什么大問題,但是對于游戲之類用戶需要經(jīng)常點擊屏幕的 App详幽,那就幾乎是悲劇了——這也是為什么你在 Android 4.4 之前找不到什么全屏模式會自動隱藏導(dǎo)航欄的應(yīng)用筛欢。

那么 Google 面對這樣的問題自然也不會坐視不管浸锨。還記得 iOS 是怎么處理用戶在全屏應(yīng)用下調(diào)出通知中心/控制中心操作的么唇聘?對,用戶做一個向內(nèi)滑動的手勢柱搜,一個小箭頭就會出現(xiàn)迟郎,在不影響當(dāng)前應(yīng)用全屏的情況下引導(dǎo)用戶操作。

iOS 在全屏的情況下聪蘸,用戶在原有狀態(tài)欄區(qū)域向內(nèi)滑動宪肖,會調(diào)出小箭頭指引用戶打開通知中心。

Google 借鑒了 iOS 的邏輯健爬,4.4 之后加入的這個 Immersive Full-Screen Mode 允許用戶在應(yīng)用全屏的情況下控乾,通過在原有的狀態(tài)欄/導(dǎo)航欄區(qū)域內(nèi)做向內(nèi)滑動的手勢來實現(xiàn)短暫調(diào)出狀態(tài)欄和導(dǎo)航欄的操作,且不會影響應(yīng)用的正常全屏娜遵,短暫調(diào)出的狀態(tài)欄和導(dǎo)航欄會呈半透明狀態(tài)蜕衡,并且在一段時間內(nèi)或者用戶與應(yīng)用內(nèi)元素進行互動的情況下自動隱藏。


短暫調(diào)出的狀態(tài)欄和導(dǎo)航欄设拟,會在特定情況下自動隱藏

這個新加入的特性理所當(dāng)然地受到了廣泛好評:從此 Android 終于可以在全屏應(yīng)用下不影響用戶的正常操作了慨仿,難怪 Android Developers 頁面中會這么描述 Immersive Full-Screen Mode:

...lets your app go truly "full screen."

當(dāng)然,講了這么多有關(guān)“沉浸模式”的介紹纳胧,目的并不是要告訴你“沉浸模式”有多么多么好镰吆,而是為了告訴你,目前你們所說的“支持沉浸模式”“沉浸狀態(tài)欄”等等跑慕,和真正的“沉浸模式”万皿,即 Immersive Full-Screen Mode 是一點關(guān)系都沒有的。

接下來我要告訴你們,你們口中的“沉浸”究竟是個什么東西牢硅。

“沉浸狀態(tài)欄”究竟是什么慰于?

Google 在 Android 4.4 的 API 描述頁面里提到了“Translucent system UI styling”,即半透明化的系統(tǒng)UI風(fēng)格唤衫。

這個“半透明化”包括了狀態(tài)欄和通知欄婆赠,當(dāng)開發(fā)者讓應(yīng)用支持這個新特性的時候,狀態(tài)欄和導(dǎo)航欄可以單獨/同時變?yōu)闈u變的半透明樣式佳励。


半透明后的狀態(tài)欄休里,顯示出漸變的半透明式背景

說到這里大家應(yīng)該都明白了——沒錯,這就是你們口中經(jīng)常提到的“沉浸模式”“沉浸狀態(tài)欄”赃承。記住了妙黍,他們的學(xué)名是"Translucent Bars",透明欄瞧剖,包括了狀態(tài)欄(Translucent status bar)和導(dǎo)航欄(Translucent navigation bar)拭嫁。

在 Android 5.0 之后引入了 Material Design,狀態(tài)欄和導(dǎo)航欄也玩出了更多花樣∽ビ冢現(xiàn)在除了原有的“半透明”模式以外做粤,還有“全透明”以及“變色”模式,一種會完全隱藏背景捉撮,另一種可以取色作為背景顏色怕品。

不同的狀態(tài)欄風(fēng)格
不同的導(dǎo)航欄風(fēng)格,可以注意到加入了全透明(Transparent)背景

有關(guān)更多 Material Design 中關(guān)于系統(tǒng)欄的描述可以參考這里

總結(jié)

如果你認真看到了這里巾遭,那么你應(yīng)該明白了一個重要的事情:此“沉浸”非彼“沉浸”肉康。

真正的沉浸模式,指的是一種全屏模式灼舍,而你一般在開發(fā)者/愛好者/用戶那里聽到的“沉浸模式”絕大部分情況下指的是“半透明欄”或者是 Android 5.0 之后加入的“全透明/變色欄”吼和。至于所謂“沉浸式狀態(tài)欄/導(dǎo)航欄”之類的描述,則完全是無稽之談骑素。

關(guān)于國人對于“半透明欄”和“沉浸模式”之間的誤解是怎么產(chǎn)生的炫乓,我并不清楚,或許是當(dāng)時某個科技網(wǎng)站的小編理解錯誤砂豌,翻譯新聞時將兩個東西扯在了一起厢岂;也或許是某個開發(fā)者在介紹透明欄時誤以為“沉浸模式”是恰當(dāng)?shù)姆g,但總之阳距,錯并不是問題塔粒,知錯不改才是問題。

如果你能理解這一點筐摘,請再也不要弄混這兩個完全不一樣的東西了卒茬。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末船老,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子圃酵,更是在濱河造成了極大的恐慌柳畔,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件郭赐,死亡現(xiàn)場離奇詭異薪韩,居然都是意外死亡,警方通過查閱死者的電腦和手機捌锭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門俘陷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人观谦,你說我怎么就攤上這事拉盾。” “怎么了豁状?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵捉偏,是天一觀的道長。 經(jīng)常有香客問我泻红,道長夭禽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任承桥,我火速辦了婚禮驻粟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘凶异。我一直安慰自己,他們只是感情好挤巡,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布剩彬。 她就那樣靜靜地躺著,像睡著了一般矿卑。 火紅的嫁衣襯著肌膚如雪喉恋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天母廷,我揣著相機與錄音轻黑,去河邊找鬼。 笑死琴昆,一個胖子當(dāng)著我的面吹牛氓鄙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播业舍,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼抖拦,長吁一口氣:“原來是場噩夢啊……” “哼升酣!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起态罪,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤噩茄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后复颈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绩聘,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年耗啦,在試婚紗的時候發(fā)現(xiàn)自己被綠了君纫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡芹彬,死狀恐怖蓄髓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情舒帮,我是刑警寧澤会喝,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站玩郊,受9級特大地震影響肢执,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜译红,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一预茄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧侦厚,春花似錦耻陕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至想诅,卻和暖如春召庞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背来破。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工篮灼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人徘禁。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓诅诱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親晌坤。 傳聞我的和親對象是個殘疾皇子逢艘,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,110評論 25 707
  • 關(guān)于沉浸式狀態(tài)欄一詞的說法從何而來我們無從考證旦袋。但這確實是個錯誤的說法先引用官方的一段話。 Immersive f...
    ifjgm閱讀 9,083評論 3 46
  • 網(wǎng)上談?wù)摗俺两健钡奈恼露嗟牟豢蓜贁?shù)它改,有人把“沉浸式”叫做“沉浸式狀態(tài)欄”疤孕,還有人稱作為“透明狀態(tài)欄”、“變色狀態(tài)...
    zhuhf閱讀 3,895評論 6 69
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點贊按鈕進度條TabLayout圖標下拉刷新...
    皇小弟閱讀 46,758評論 22 665
  • 夏天來了央拖,嘴饞的她即便是挺著一個大肚子也得去買個解暑的西瓜來吃祭阀。于是她去了超市一次,是到是直奔水果那的西瓜去的鲜戒,不...
    德吉梅朵閱讀 389評論 0 0