Android實(shí)現(xiàn)沉浸式通知欄通知欄背景顏色跟隨app導(dǎo)航欄背景顏色而改變
最近好多app都已經(jīng)滿足了沉浸式通知欄, 所謂沉浸式通知欄:就是把用來導(dǎo)航的各種界面操作空間隱藏在以程序內(nèi)容為主的情景中,通過相對“隱形”的界面來達(dá)到把用戶可視范圍最大化地用到內(nèi)容本身上。
而最新安卓4.4系統(tǒng)的通知欄沉浸模式就是在軟件打開的時(shí)候通知欄和軟件頂部顏色融為一體,這樣不僅可以使軟件和系統(tǒng)本身更加融為一體。 就是手機(jī)的通知欄的顏色不再是白色、黑色簡單的兩種了,本人用的小米4手機(jī),米4手機(jī)中的自帶軟件都支持沉浸式通知欄, 舉個例子:大家可以看一下自己的qq,它的標(biāo)題的背景顏色是藍(lán)色的,那么通知欄也會變成藍(lán)色。之前可能不行,也是最近支持了。
不知道m(xù)iui6什么時(shí)候能統(tǒng)一支持一下。下面給大家說一下怎么讓自己的app支持沉浸式通知欄:
github上已經(jīng)有大牛研究出來了,說一下怎么實(shí)現(xiàn)的:
首先下載SystemBarTint,將里面的SystemBarTintManager.java拷貝出來放到自己的項(xiàng)目中, 在actitvity的onCreate()方法中判斷并設(shè)置通知欄顏色(顏色需要根據(jù)軟件的titlebar的背景自己定義)
代碼一:
代碼如下:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setTranslucentStatus(true); } SystemBarTintManager tintManager = new SystemBarTintManager(this); tintManager.setStatusBarTintEnabled(true); tintManager.setStatusBarTintResource(R.color.statusbar_bg);//通知欄所需顏色
下面是設(shè)置通知欄的狀態(tài)
@TargetApi(19) private void setTranslucentStatus(boolean on) { Window win = getWindow(); WindowManager.LayoutParams winParams = win.getAttributes(); final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS; if (on) { winParams.flags |= bits; } else { winParams.flags &= ~bits; } win.setAttributes(winParams); }
這樣就可以完美實(shí)現(xiàn)沉浸式通知欄的。注意系統(tǒng)一定是在4.4以上。小伙伴們趕快來試一下吧。
代碼二:
通知欄(notification)背景顏色跟隨app導(dǎo)航欄(top title)背景顏色變化而變化。
這也叫沉浸式狀態(tài)欄,這是Google在android 4.4以上的系統(tǒng)提出的。
樣式如圖所示:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); }
然后在xml布局文件中加入:
android:clipToPadding="false" android:fitsSystemWindows="true"
- Android 中使用RadioGroup和Fragment實(shí)現(xiàn)底部導(dǎo)航欄的功能
- 微信小程序?qū)崙?zhàn)之仿android fragment可滑動底部導(dǎo)航欄(4)
- android中Fragment+RadioButton實(shí)現(xiàn)底部導(dǎo)航欄
- Android自定義ViewPagerIndicator實(shí)現(xiàn)炫酷導(dǎo)航欄指示器(ViewPager+Fragment)
- Android程序開發(fā)之Fragment實(shí)現(xiàn)底部導(dǎo)航欄實(shí)例代碼
- Android實(shí)現(xiàn)底部導(dǎo)航欄功能(選項(xiàng)卡)
- 超簡單的幾行代碼搞定Android底部導(dǎo)航欄功能
- Android 彈出Dialog時(shí)隱藏狀態(tài)欄和底部導(dǎo)航欄的方法
- Android 沉浸式狀態(tài)欄與隱藏導(dǎo)航欄實(shí)例詳解
- android 全屏去掉底部虛擬導(dǎo)航欄的方法
- 解決android 顯示內(nèi)容被底部導(dǎo)航欄遮擋的問題
- Android仿今日頭條頂部導(dǎo)航欄效果的實(shí)例代碼
- Android仿網(wǎng)易客戶端頂部導(dǎo)航欄效果
- Android?Fragment實(shí)現(xiàn)頂部、底部導(dǎo)航欄
相關(guān)文章
Android入門之使用eclipse進(jìn)行源碼開發(fā)的方法
這篇文章主要介紹了Android入門之使用eclipse進(jìn)行源碼開發(fā)的方法,較為詳細(xì)的分析了使用eclipse進(jìn)行Android源碼開發(fā)的具體步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-02-02Flutter基本組件Basics?Widget學(xué)習(xí)
本文詳細(xì)講解了Flutter基本組件Basics?Widget,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12Android項(xiàng)目中引入aar包的正確方法介紹
生成aar之后下一步就是如何引用本地的aar文件,下面這篇文章主要給大家介紹了關(guān)于Android項(xiàng)目中引入aar包的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08Android ExpandableListView雙層嵌套實(shí)現(xiàn)三級樹形菜單
這篇文章主要介紹了Android ExpandableListView雙層嵌套實(shí)現(xiàn)三級樹形菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11Kotlin擴(kuò)展函數(shù)及實(shí)現(xiàn)機(jī)制的深入探索
擴(kuò)展函數(shù)與擴(kuò)展屬性的神奇之處在于,可以在不修改原來類的條件下,使用函數(shù)和屬性,表現(xiàn)得就像是屬于這個類的一樣。下面這篇文章主要給大家介紹了關(guān)于Kotlin擴(kuò)展函數(shù)及實(shí)現(xiàn)機(jī)制的相關(guān)資料,需要的朋友可以參考下2018-06-06Android實(shí)現(xiàn)MVVM架構(gòu)數(shù)據(jù)刷新詳解流程
MVVM架構(gòu)模式,即Model-View-ViewModel三個層級,MVVM模式出來的時(shí)間已經(jīng)很長了,網(wǎng)上關(guān)于MVVM模式的解析也有很多,我這里只說一下我自己的理解,基本上是和MVP模式相比較的一個差異2021-10-10Android開發(fā)之ProgressBar字體隨著進(jìn)度條的加載而滾動
這篇文章主要介紹了Android開發(fā)之ProgressBar字體隨著進(jìn)度條的加載而滾動,需要的朋友可以參考下2017-09-09