在《第一行代码》中提到了一种实现方式:android
使用 android:fitsSystemWindows="true" 属性来设置。不过还须要将ui
<item name="android:statusBarColor">@android:color/transparent</item>设置一下,将状态栏设置为透明状态,不过android:statusBarColor属性是从API21开始有的,须要建立vlaues-v21目录。不过在使用后,发现这个时将背景图案拉伸到状态上面。spa
另一种方式是在oncreate中使用:.net
if (Build.VERSION.SDK_INT >= 21) { View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; decorView.setSystemUiVisibility(option); getWindow().setStatusBarColor(Color.TRANSPARENT); } ActionBar actionBar = getSupportActionBar();
这样的效果是只有5.0及以上系统才支持,所以这里先进行了一层if判断,只有系统版本大于或等于5.0的时候才会执行下面的代码。blog
接下来咱们使用了SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN和SYSTEM_UI_FLAG_LAYOUT_STABLE,注意两个Flag必需要结合在一块儿使用,表示会让应用的主体内容占用系统状态栏的空间,最后再调用Window的setStatusBarColor()方法将状态栏设置成透明色就能够了。get
有篇很详细的博客,有须要能够看一下。沉浸式状态栏博客