我建议在测试下面的代码的时候自己先新建一个项目,测试下面代码,这样效果清楚点,避免因为粗心而导致效果达不到。

介绍:

最主要还是起到记笔记的作用,功能也比较简单。

第一步:

去除标题栏,在style.xml修改为如下情况。

在这里插入图片描述

修改前的情况:

在这里插入图片描述

修改后的情况:

在这里插入图片描述

可以看到标签栏不见了。(是不是感觉有点啰嗦,最主要是为了详细)。

第二步(重点,前面的一般都知道,现在才是重点,请认真阅读):

去除修改栏的颜色

Window window =this.getWindow();

window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(ContextCompat.getColor(this,R.color.white));

在这里插入图片描述

可以看到图中有一个window.setStatusBarColor有一个红色的地方。应该是版本的问题,使用Alter+enter键选择第一个,选择后会出现下图圈中的地方,那个红色就没了。

在这里插入图片描述

如下图红圈处,修改为你需要的颜色,这里我们修改的是白色,在color.xml文件中修改。

在这里插入图片描述

在这里插入图片描述

然后我们先运行一下。

我们可以看到界面全部变为了白色,因为以前状态栏的图标为白色,因为我们这里设置的也是白色,所以我们会发现状态栏的图标会看不清,这样是不是很不好看,下面我就来说一下怎么修改图标的颜色。

在这里插入图片描述

第三步:

修改状态栏图标的颜色

代码如下:
public void changStatusIconCollor(boolean setDark) {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
View decorView = getWindow().getDecorView();
if(decorView != null){
int vis = decorView.getSystemUiVisibility();
if(setDark){
vis |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
} else{
vis &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
}
decorView.setSystemUiVisibility(vis);
}
}
}

如图所示,写入这个方法,不过不要忘记调用这个方法哦,当true时设置状态栏图标颜色为黑色,false设置状态栏颜色为白色。

在这里插入图片描述

效果如图所示:

在这里插入图片描述

这里效果就完成了

扩展功能

先看一下刚刚我们写的代码实现的效果,可以看到没有达到我们想要的效果。这里我找了张效果比较明显的图(手动滑稽)这个测试可能,可以直接找图片试一下,我太啰嗦了,这里就不细说了。

在这里插入图片描述

首先,删除图中刚刚我们写的红圈中的代码

在这里插入图片描述

第二步,加入蓝圈中的代码

在这里插入图片描述

代码如下:

if (Build.VERSION.SDK_INT >= 21) {
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(option);
getWindow().setNavigationBarColor(Color.TRANSPARENT);
getWindow().setStatusBarColor(Color.TRANSPARENT);
}

然后我们看一下效果。

在这里插入图片描述

正好是我想要的效果,到这里我们就可以实现状态栏的修改了,是不是好看很多。