Android 狀態(tài)欄和虛擬導航欄顏色修改

代碼參考自:這個大神

Android5.0以上實現:(兩種方式)

實現方式一:

修改style文件夾中關于狀態(tài)欄和導航欄的設置

在src-->main-->res文件夾下創(chuàng)建,values-v21目錄,在其中創(chuàng)建styles文件夾,并在其中加入以下代碼:

狀態(tài)欄:

<item name="android:statusBarColor">@color/colorStatusBarColor</item>

虛擬導航欄:

<item name="android:navigationBarColor">@color/colorNavigationBarColor</item>

實現方式二:

代碼中進行設置(推薦)

在setConetntView(View);之前加入下面代碼

//代碼解釋:如果編譯版本的當前版本號大于等于Android5.0,則使用下面的方法

if(Build.VERSION.SDK__INT>=BUILD.VERSION_CODES.LOLLTPOP){

? ? ? ? getWindow().setStatusBar(getResource().getColor(R.color.statusbarcolor));

? ? ? ? ? ? ? ?getWindow().setNavigationBarColor(getResource().getColor(R.color.navigitionbarcolor));

}


Android4.4--5.0中實現(兩種方式)

實現方式一:

修改style文件夾中關于狀態(tài)欄和導航欄的設置

在src-->main-->res文件夾下創(chuàng)建,values-v19目錄,在其中創(chuàng)建styles文件夾,并在其中加入以下代碼:

<item name="android:windowTranslucentStatus">true</item>

<item name="android:windowTranslucentNavigation">true</item>

實現方式二:

代碼中進行設置(推薦)

在setConetntView(View);之前加入下面代碼

//代碼解釋:如果當前版本大于等于4.4,并且當前版本小于5.0,證明是在4.4-5.0之間

if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.KITKAT&&Build.VERSION.SDK_I

?NT<Build.VERSION_CODES.LOLLIPOP){

? ? ? ?? ? ?getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_

? ? ? ? ? ? STATUS);

? ? ? ? ? ? getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_

? ? ? ? ? ? NAVIGGATION);

}

在4.4到5.0之間可能會出現錯位的情況:

解決方式:

1.在ToolBar設置fitsSystemWindows為true

2.在根布局設置fitsSystemWindows為true

3.動態(tài)獲取ToolBar高度并設置ToolBar高度

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容