1.简介:
状态栏适配主要分为三个问题:设置状态栏颜色,沉浸式状态栏,设置状态栏黑色图标;
Android版本 | 设置状态栏颜色 | 设置沉浸式状态栏 | 设置黑色图标 |
---|---|---|---|
Android 4.4.2(API19) 以下 | false | false | false |
Android 5.0(API21) 以下 | false | true | false |
Android 6.0(API23) 以下 | true | true | false |
Android 6.0(API23) 及以上 | true | true | true |
设置状态栏有两种方式,分别是通过xml设置和在Java代码中设置,而且Java代码中设置优先级较高
2.设置状态栏颜色:
1.Android 5.0及以上
系统提供了Window.setStatusBarColor(int color)
接口来设置状态栏颜色:
public static void setStatusBarBackgroundColor(Activity activity, @ColorRes int colorResId) {
Window window = activity.getWindow();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
//android 5.0及以上
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(activity.getResources().getColor(colorResId));
}
}
FLAG_TRANSLUCENT_STATUS
是透明状态栏标签,Window带有这个标签的话设置颜色无效
FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
是允许设置状态栏的标签,想要设置状态栏颜色Window必须带有这个标签
2.Android 5.0以下:
Android 4.4 没有提供设置状态栏颜色的接口,所以状态栏要自己绘制ÿ