android沉浸式状态栏的总结

总结:
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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容