- 网上关于设置状态栏透明的方法有好多,在xml里面修改就不介绍了,无非就是新建几个对应的style,但需要注意的是从5.x开始需要把颜色设置成透明,即属性android:windowTranslucentStatus=false和android:statusBarColor设置成transparent
- 下面介绍在代码里面设置
public static void setStateBarTranslucent(Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//4.4 全透明状态栏
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//5.0 全透明实现
// activity.getWindow().setStatusBarColor(Color.TRANSPARENT); //直接用这个方法会有兼容性问题
Window window = activity.getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);//这句话一定得加
window.setStatusBarColor(Color.TRANSPARENT);//calculateStatusColor(Color.WHITE, (int) alphaValue)
}
}
网友评论