Android虛擬按鍵的適配問題

新開了 <<Android Tips>> 文集曙旭,這個(gè)文集主要分享一些短小蘑拯、簡(jiǎn)單實(shí)用的小技巧。希望大家喜歡。


最近幾天逛博客時(shí)龄寞,趕巧遇到了好幾個(gè)人在談Android的虛擬按鍵適配,問題大概是這樣的:

有不少手機(jī)璧疗,比如華為的大部分手機(jī)皆的,Nexus 等都是不帶實(shí)體按鍵的,取而代之的是虛擬按鍵究恤,學(xué)名叫 NavigationBar俭令。NavigationBar 顯示時(shí)會(huì)占用一定的屏幕高度,使得 Activity 實(shí)際的布局高度變窄了部宿,如果 Activity 中的視圖太高抄腔,則視圖的底部會(huì)被 NavigationBar 切掉(遮擋)。

我有點(diǎn)好奇理张,為什么大家普遍在這個(gè)問題上糾結(jié)赫蛇。其實(shí),我并不把它看成是一個(gè)技術(shù)問題雾叭。而應(yīng)該是一個(gè)對(duì)設(shè)計(jì)稿的理解問題悟耘。

設(shè)計(jì)師在設(shè)計(jì)視覺稿的時(shí)候,一般會(huì)考慮預(yù)留出狀態(tài)欄區(qū)域织狐,將除狀態(tài)欄以外的區(qū)域作為設(shè)計(jì)區(qū)域暂幼。但她們基本不會(huì)考慮 NavigationBar。視覺稿中底部的一些 UI 元素移迫,往往是通過一些 marginTop 來讓它們看起來在底部旺嬉。

試想一下,如果我們?cè)趯?shí)現(xiàn)的時(shí)候厨埋,如果完全按照視覺稿中的 marginTop 去做豎向布局邪媳,則在帶有 NavigationBar 的手機(jī)上,實(shí)際可用的布局高度小于視覺稿中的設(shè)計(jì)高度時(shí)揽咕,超出部分的內(nèi)容就會(huì)被切掉悲酷,也就出現(xiàn)了所謂的適配問題。貼一個(gè)一般公式:

設(shè)計(jì)高度 = 屏幕高度 - 狀態(tài)欄高度
布局高度 = 屏幕高度 - 狀態(tài)欄高度 - 虛擬按鍵高度

要解決這個(gè)問題亲善,其實(shí)很簡(jiǎn)單设易,我說過,這不是一個(gè)技術(shù)問題蛹头,因此不必使用 fitsSystemWindows 屬性顿肺,也避免了副作用戏溺。只需要在布局時(shí),正確理解設(shè)計(jì)師的意圖屠尊,比如旷祸,如果一個(gè)按鈕在最底部,你應(yīng)該用 layout_gravity="bottom" 而不是用 marginTop 或者其他方式來把它撐到底部讼昆。

一個(gè)中心思想是:盡可能的從下往上托享,而非從上往下布局。不要盲目的完全按照視覺稿中的尺寸去布局浸赫,應(yīng)該區(qū)分出不同視覺元素的重要性闰围,優(yōu)先保證最上方和最下方的元素正確顯示,至于中間的元素既峡,多多用相對(duì)布局或是weight屬性吧羡榴。

好了,周末愉快运敢。


額校仑,貌似這篇文章所講述的內(nèi)容和大家所期望的不是同一個(gè)東西。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末传惠,一起剝皮案震驚了整個(gè)濱河市迄沫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卦方,老刑警劉巖邢滑,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異愿汰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)乐纸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門衬廷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人汽绢,你說我怎么就攤上這事吗跋。” “怎么了宁昭?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵跌宛,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我积仗,道長(zhǎng)疆拘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任寂曹,我火速辦了婚禮哎迄,結(jié)果婚禮上回右,老公的妹妹穿的比我還像新娘。我一直安慰自己漱挚,他們只是感情好翔烁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著旨涝,像睡著了一般蹬屹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上白华,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天慨默,我揣著相機(jī)與錄音,去河邊找鬼衬鱼。 笑死业筏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鸟赫。 我是一名探鬼主播蒜胖,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼抛蚤!你這毒婦竟也來了台谢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤岁经,失蹤者是張志新(化名)和其女友劉穎朋沮,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缀壤,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡樊拓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了塘慕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筋夏。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖图呢,靈堂內(nèi)的尸體忽然破棺而出条篷,到底是詐尸還是另有隱情,我是刑警寧澤蛤织,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布赴叹,位于F島的核電站,受9級(jí)特大地震影響指蚜,放射性物質(zhì)發(fā)生泄漏乞巧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一姚炕、第九天 我趴在偏房一處隱蔽的房頂上張望摊欠。 院中可真熱鬧丢烘,春花似錦、人聲如沸些椒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽免糕。三九已至赢乓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間石窑,已是汗流浹背牌芋。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留松逊,地道東北人躺屁。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像经宏,于是被迫代替她去往敵國和親犀暑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

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