那些年我理解的沉浸式状态栏?OR透明化状态栏?
来源:互联网 发布:angularjs 清空数组 编辑:程序博客网 时间:2024/05/21 19:41
突然看到了郭神的关于讲解沉浸式状态栏的博客,我也觉得我有必要做一下笔记。 首先,我们绝大多数人所理解的沉浸式状态栏都不是真正意义上的沉浸式状态栏,我们所理解的沉浸式状态栏用透明化状态栏来形容非常贴合。 一个android应用的界面元素:顶部状态栏,顶部下面的actionbar,中间我们开发者的layout,底部的导航栏组成;底部导航栏就是华为手机大家看到的返回键那一栏。如下图:
Android怎么设置状态栏的颜色呢?首先透明化状态栏只有API21以上,也就是android5.0才有的
if (Build.VERSION.SDK_INT >= 21) { //获取到了当前界面的DecorView View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; //通过setSystemUiVisibility方法系统UI元素的可见性 decorView.setSystemUiVisibility(option); //设置状态栏颜色 getWindow().setStatusBarColor(Color.RED); //设置底部导航栏 getWindow().setNavigationBarColor(Color.TRANSPARENT); }
这里设置完之后就是隐藏actionbar了
ActionBar supportActionBar = getSupportActionBar();//获取actionbar supportActionBar.hide();//隐藏actionbar
隐藏底部导航栏:
View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; decorView.setSystemUiVisibility(option);