android沉浸式状态栏的总结
2017-08-28 本文已影响0人
地板流
总结:
1.从android4.4版本开始可以实现沉浸式状态栏的功能,4.4和5.0以上的效果会有点不一样,所以可以选择使用在view来代替状态栏背景,这样就一致了;
2.在白色背景的情况下默认状态栏是白色,需要设置状态栏和图标颜色,而在6.0以上则是可以设置状态栏的图标字体的颜色的,然而魅族和小米是有另外自己的字体修改api的,所以这个修改字体深浅需要原生和魅族小米三个一起设置;
3.在代码中实现上述代码是因为国内有些 rom 如果单纯在 style 文件中设置 windowTranslucentStatus 可能导致设置无效。所以在 Activity 中再次设置一遍 。
4.单单设置windowTranslucentStatus 只是半透明的效果,有的机型是灰色的半透明,有的则是全透明,单独设置状态栏颜色,可使用以下代码实现沉浸式效果:
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
// getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().setStatusBarColor(Color.TRANSPARENT);// SDK21
5.在5.0以后可以通过设置主题颜色来设置一些app的默认颜色;
以下是一张主题颜色的图片:
颜色.png