Google 在 4.4 给全屏阅读文字或玩游戏这种情景增加了透明状态栏和透明导航栏的功能,实现状态栏一体化,在4.4以后只需要两步,如果需要兼容更低版本,那就需要自定义了。
第一步:设置 Acitivity 所在 window 的属性
透明状态栏 :getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
透明导航栏 :getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//透明状态栏
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window window = getWindow();
// Translucent status bar
window.setFlags(
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
}
第二步:设置状态栏的颜色: 状态栏的颜色跟两个属性有关
android:fitsSystemWindows="true"
android:clipToPadding="true"
只要在第一个view设置了该属性,那么状态栏的颜色就跟该view的背景保持一致。(图片和颜色均可)
ps:上面的两个属性一般在最外层的第一个控件里面设置