代码参考自:这个大神
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高度