代碼參考自:這個大神
Android5.0以上實現:(兩種方式)
實現方式一:
修改style文件夾中關于狀態欄和導航欄的設置
在src-->main-->res文件夾下創建,values-v21目錄,在其中創建styles文件夾,并在其中加入以下代碼:
狀態欄:
<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文件夾中關于狀態欄和導航欄的設置
在src-->main-->res文件夾下創建,values-v19目錄,在其中創建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.動態獲取ToolBar高度并設置ToolBar高度