Android 解決沉浸式狀態(tài)欄兼容華為虛擬建問題

最近為了迎合設(shè)計的要求铃芦,要給項目中添加沉浸式狀態(tài)欄。
一開始我是拒絕的襟雷,因為這事雖然沒做過刃滓,但也聽過,各種兼容問題耸弄。= =但是設(shè)計強烈要求啊咧虎,并拿出某京某寶說為什么別人能做。 最后決定只管5.0以上的手機计呈。
唉~ 雖然說只管5.0手機 但是低版本的手機還是要做判斷的嘛砰诵。不能因為設(shè)計說不管就不做啊 對吧。

既然要做低版本兼容捌显,首先要考慮的就是我們APP頂部標題欄的高度問題啦
直接上代碼:

這里只根據(jù)本人項目中所需進行適配茁彭。因本人頂部Title是LinearLayout ,所以這里只做LinearLayout 的

    public void setTitleHeight(LinearLayout lystateTop){
        //只兼容5.0以上
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) lystateTop.getLayoutParams();
          //原本是計劃通過margin 實現(xiàn)的扶歪,但是這樣會使透明的導(dǎo)航欄變白色尉间,與實際想要的效果相沖突
            //  layoutParams.setMargins(0, getstateH(), 0, 0);
            layoutParams.height = layoutParams.height+getstateH();
            lystateTop.setLayoutParams(layoutParams);
            lystateTop.setPadding(0, getstateH(), 0, 0);
        }

}

    public int getstateH() {
    try {
        Class<?> clazz = Class.forName("com.android.internal.R$dimen");
        Object object = clazz.newInstance();
        int height = Integer.parseInt(clazz.getField("status_bar_height").get(object).toString());
        return getResources().getDimensionPixelSize(height);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return 50;
}

接下來是讓那個項目實現(xiàn)透明度的狀態(tài)欄,

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        //透明狀態(tài)欄
       getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        //透明導(dǎo)航欄击罪,底部導(dǎo)航欄  ,因設(shè)計需求贪薪,底部導(dǎo)航欄不做媳禁,所以這里要注釋,否則與華為底部導(dǎo)航欄沖突
    //   getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
    }

接下來就是在布局文件中加入以下兩行代碼:

    android:fitsSystemWindows="true"
    android:clipToPadding="true"

這樣就實現(xiàn)了我們想要的沉浸式效果了画切。
是不是覺得 輕輕松松竣稽,so easy?

對的一度我自己都以為做好了,并用錘子霍弹、360毫别、小米進行測試,一切順利典格。
但是 但是岛宦,別忘了 它們都沒有虛擬建啊。

當我另一個同事拿出華為手機的時候耍缴,狀況出現(xiàn)了砾肺。
當手動切換虛擬建的時候挽霉,狀態(tài)欄變灰了,不透明了变汪。
what ? 然后往上滑動的時候侠坎,發(fā)現(xiàn)這透明欄是好的。但是回滾到原位的時候裙盾,這個狀態(tài)欄始終是灰色实胸。
這樣可不行啊,根本就跟沉浸式不搭邊了嘛番官。甚至連主題色都不是庐完,這就尷尬了。
......
......
......
以上省略N字鲤拿。
最后是直接再根目錄下添加一個View 并設(shè)置
android:fitsSystemWindows="true"
android:clipToPadding="true"
兩個屬性假褪,完美解決了華為底部導(dǎo)航欄 切換隱藏和顯示 導(dǎo)致的狀態(tài)欄不對的情況,這里因為是直接公司的項目就不貼效果圖了近顷。:


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末生音,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子窒升,更是在濱河造成了極大的恐慌缀遍,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饱须,死亡現(xiàn)場離奇詭異域醇,居然都是意外死亡,警方通過查閱死者的電腦和手機蓉媳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門譬挚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人酪呻,你說我怎么就攤上這事减宣。” “怎么了玩荠?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵漆腌,是天一觀的道長。 經(jīng)常有香客問我阶冈,道長闷尿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任女坑,我火速辦了婚禮填具,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘匆骗。我一直安慰自己灌旧,他們只是感情好绑咱,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著枢泰,像睡著了一般描融。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上衡蚂,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天窿克,我揣著相機與錄音,去河邊找鬼毛甲。 笑死年叮,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的玻募。 我是一名探鬼主播只损,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼七咧!你這毒婦竟也來了跃惫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤艾栋,失蹤者是張志新(化名)和其女友劉穎爆存,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蝗砾,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡先较,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了悼粮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片闲勺。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖扣猫,靈堂內(nèi)的尸體忽然破棺而出霉翔,到底是詐尸還是另有隱情,我是刑警寧澤苞笨,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站子眶,受9級特大地震影響瀑凝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜臭杰,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一粤咪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧渴杆,春花似錦寥枝、人聲如沸宪塔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽某筐。三九已至,卻和暖如春冠跷,著一層夾襖步出監(jiān)牢的瞬間南誊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工蜜托, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抄囚,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓橄务,卻偏偏與公主長得像幔托,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蜂挪,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,185評論 25 707
  • 前言 首先請大家看幾張圖: 以上的效果重挑,一般我們統(tǒng)稱為沉浸式狀態(tài)欄。其實锅劝,這種叫法不是很準確攒驰,而且也沒有沉浸式狀態(tài)...
    宇是我閱讀 3,857評論 2 28
  • 背景 上篇文章一個千萬量級的APP使用的一些第三方庫中,在說到一個使用很廣泛的滑動退出庫SwipeBackLayo...
    Ziv_xiao閱讀 16,678評論 22 127
  • 青春總是有色彩的。有人的青春是黑色的诬垂,謊言劲室、欺詐、暴力结窘,充滿了敵意很洋,如捍匪周克華;有人的青春是灰色的隧枫,平淡喉磁、失意、...
    傲看今朝閱讀 344評論 1 2
  • 秋風吹起官脓,大雁南飛……又是一個豐收的季節(jié)协怒,和往年一樣又回到了生我養(yǎng)我的地方!看著金黃的玉米卑笨,想起了自己小時候坐在田...
    深夜熒光閱讀 441評論 0 1