Android 5.0透明狀態(tài)欄設(shè)置

聲明

這篇文章是針對Android 5.0及以上版本的系統(tǒng)進行透明的狀態(tài)欄設(shè)置慎冤,Android 5.0以下的系統(tǒng)暫不在本篇文章的討論范圍之內(nèi)癞埠。

Android 5.0透明狀態(tài)欄——普通界面

先貼出MainActivity布局代碼:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorPrimary"
    android:fitsSystemWindows="true"
    tools:context="stephen.com.material_design.NoteActivity">
        
    <include
        layout="@layout/app_bar_note"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</RelativeLayout>

上面的代碼中兼犯,最主要的兩行分別是:

  • 設(shè)置最外層布局背景色為Toolbar的顏色:android:background="@color/colorPrimary"
  • 設(shè)置Toolbar不擴展到狀態(tài)欄:android:fitsSystemWindows="true"
    在布局文件中設(shè)置完畢后爷光,還需要在onCreate()里面加上如下的代碼:
  • 設(shè)置狀態(tài)欄顏色為透明:getWindow().setStatusBarColor(Color.TRANSPARENT);
  • 設(shè)置狀態(tài)欄和APP的位置關(guān)系:getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);

setSystemUiVisibility(int visibility)傳入的實參類型如下:

  1. View.SYSTEM_UI_FLAG_VISIBLE:顯示狀態(tài)欄,Activity不全屏顯示(恢復到有狀態(tài)的正常情況)郑原。
  2. View.INVISIBLE:隱藏狀態(tài)欄腌紧,同時Activity會伸展全屏顯示茸习。
  3. View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏顯示,且狀態(tài)欄被隱藏覆蓋掉壁肋。
  4. View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏顯示号胚,但狀態(tài)欄不會被隱藏覆蓋籽慢,狀態(tài)欄依然可見,Activity頂端布局部分會被狀態(tài)遮住猫胁。

主要需要用到的參數(shù)就是以上的幾個箱亿,其他的參數(shù)在實際的開發(fā)中用的相對較少,這里也就不列舉出來了杜漠。
通過上面的兩個地方的代碼設(shè)置之后极景,我們的APP就可以實現(xiàn)透明狀態(tài)欄的效果了。

普通界面的透明狀態(tài)欄.png

以上就是普通的界面設(shè)置透明狀態(tài)欄的方法驾茴。

Android 5.0透明狀態(tài)欄——帶DrawerLayout界面

帶有DrawerLayout的界面設(shè)置透明狀態(tài)欄,最終效果是和網(wǎng)易云音樂一樣的氢卡,方法其實和上面的差不多势决,但是有個小的地方需要注意判哥,在這里我還是把代碼和方法都完整的講一遍。
帶有DrawerLayout的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorPrimary"
    tools:openDrawer="start">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        android:orientation="vertical">

        <include
            layout="@layout/app_bar_main"/>
    </LinearLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/activity_main_drawer"/>

</android.support.v4.widget.DrawerLayout>

在這里說一下要注意的幾個點:

  1. 這個<LinearLayout> ... </LinearLayout>的作用,我之前沒有用這個<LinearLayout>包裹Toolbar胞枕,結(jié)果怎么設(shè)置,都不能實現(xiàn)非常完美的透明狀態(tài)欄人弓,要么是statusbar顏色問題癞季,要么是statusbar和NavigationView顏色不統(tǒng)一的問題。后來查找了很多資料阁吝,在一個小角落里面發(fā)現(xiàn)了砚婆,需要外層用<LinearLayout>包裹一下,這樣的話就可以非常完美的顯示出網(wǎng)易云音樂的效果了突勇。
  2. NavigationView里面設(shè)置的android:fitsSystemWindows="true"装盯,這個也是為了讓側(cè)邊欄即抽屜能夠和狀態(tài)欄顏色統(tǒng)一。
  3. <include ... />里面就是正常的設(shè)置Toolbar什么的了甲馋,但是要注意在Toolbar布局的最外層中也記得要添加android:fitsSystemWindows="true"

在布局文件中設(shè)置完畢之后埂奈,接著就是在代碼中設(shè)置了,在onCreate()里面加上如下的代碼:

  • 設(shè)置狀態(tài)欄顏色為透明:getWindow().setStatusBarColor(Color.TRANSPARENT);
  • 設(shè)置狀態(tài)欄和APP的位置關(guān)系:getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);

將以上的所有代碼都設(shè)置完畢之后定躏,最終呈現(xiàn)的效果如下:

沒有打開抽屜.png
打開抽屜

至此账磺,我們已經(jīng)在Android 5.0上實現(xiàn)透明狀態(tài)欄。但是對于這樣的透明狀態(tài)欄痊远,我個人是不推薦的垮抗。因為我們進行的Android開發(fā),而這個透明狀態(tài)欄卻給人一種IOS的風格拗引,Android開發(fā)就應該從方方面面都能夠體現(xiàn)出Android的特性借宵。雖然在Android 5.0之前,Android的UI風格一直都慘不忍睹矾削,但是我們一路都堅持下來了壤玫,而在Android 5.0之后豁护,因為Material Design的推出,Android的顏值可以說是提升了非常多欲间。所以我們開發(fā)人員更應該開發(fā)Pure Android的程序楚里,而不是模仿和抄襲IOS的各種風格。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末猎贴,一起剝皮案震驚了整個濱河市班缎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌她渴,老刑警劉巖达址,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異趁耗,居然都是意外死亡沉唠,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進店門苛败,熙熙樓的掌柜王于貴愁眉苦臉地迎上來满葛,“玉大人,你說我怎么就攤上這事罢屈∴秩停” “怎么了?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵缠捌,是天一觀的道長锄贷。 經(jīng)常有香客問我,道長鄙币,這世上最難降的妖魔是什么肃叶? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮十嘿,結(jié)果婚禮上因惭,老公的妹妹穿的比我還像新娘。我一直安慰自己绩衷,他們只是感情好蹦魔,可當我...
    茶點故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著咳燕,像睡著了一般勿决。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上招盲,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天低缩,我揣著相機與錄音,去河邊找鬼。 笑死咆繁,一個胖子當著我的面吹牛讳推,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播玩般,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼银觅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了坏为?” 一聲冷哼從身側(cè)響起究驴,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎匀伏,沒想到半個月后洒忧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡帘撰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年跑慕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摧找。...
    茶點故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖牢硅,靈堂內(nèi)的尸體忽然破棺而出蹬耘,到底是詐尸還是另有隱情,我是刑警寧澤减余,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布综苔,位于F島的核電站,受9級特大地震影響位岔,放射性物質(zhì)發(fā)生泄漏如筛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一抒抬、第九天 我趴在偏房一處隱蔽的房頂上張望杨刨。 院中可真熱鬧,春花似錦擦剑、人聲如沸妖胀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赚抡。三九已至,卻和暖如春纠屋,著一層夾襖步出監(jiān)牢的瞬間涂臣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工售担, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赁遗,地道東北人署辉。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像吼和,于是被迫代替她去往敵國和親涨薪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,566評論 2 349

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,799評論 25 707
  • 前言 原文:http://blog.csdn.net/mybeta/article/details/5076032...
    naturs閱讀 23,094評論 8 70
  • 實現(xiàn)輔助(外掛)參考地址:http://developer.android.com/training/access...
    AFinalStone閱讀 1,419評論 0 0
  • 問題描述 跟豆青一起寫企業(yè)用戶列表時table樣式有很多問題炫乓,沒有辦法給一行加邊框我們最后使用了border-co...
    ittianbao閱讀 234評論 0 0
  • 新鄉(xiāng)刚夺,這個中原小城市不夠繁華,不夠聞名末捣,但生活在這里的人卻在詩意的棲居侠姑。我們過著平凡的小日子,柴米油鹽作陪...
    聊欲投吾簪閱讀 159評論 0 1