趁着清明節的閑工夫,把我的百年不升級一次系統的紅米note手機升級到了miuiv6的系統,早就聽說android4.4的系統有沉浸式標題欄,一直沒有體驗過。這次終於有機會了。看了幾個手機上常用的應用都采用了這個效果,例如qq空間,wps、lbe等。自己也突然手癢癢了一下,想把當前正在做的項目也做成這種效果。
心動不如行動,廢話不多說,直接開干就可以了:
我目前做的司信項目所有的activity都繼承自一個titileactivity,這個titleactivity封裝了一個導航欄,ui給他設計了一個顏色。所以所有的系統的標題欄就跟這個顏色相同就可以了。
我是這樣做的:
設置style文件
1 <style name="ThemeLeftAndRightAnimation" parent="android:Theme.Black"> 2 <item name="android:windowAnimationStyle">@style/left_right_Animation</item> 3 <item name="android:windowNoTitle">true</item> 4 <item name="android:actionBarStyle">@style/MyActionBarStyle</item> 5 <item name="android:windowBackground">@color/navbar</item> 6 <item name="android:windowTranslucentStatus">true</item> 7 </style> 8 9 <style name="MyActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse"> 10 <item name="android:background">@color/navbar</item> 11 </style>
其實就是設置了actionbar的樣式以及主題的背景顏色,讓他的顏色與我程序的導航欄顏色相同。
接下來在titleactivity的oncreate的setcontentview后加入以下代碼:
1 if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) { 2 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 3 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); 4 }
再在titleactivity的xml布局文件中加入以下代碼:
android:clipToPadding="true"
android:fitsSystemWindows="true"
這就完了嗎,對,就是這么簡單。也許你會遇到一些問題,因為actionbar要求的最小api是11.所以你的minsdk必須設置成11.
大功告成了,欣賞一下截圖吧