现在app端的UI设计的界面,一般都是以ios为模板的,而ios在状态栏,本身就是一体化的,android 想要做出这样的效果,要进一步设置。再加上android 版本的不同,要做到统一。
4.4以下的系统
//设置状态栏颜色 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { //透明状态栏 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //透明导航栏 根据需要设置 //getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); }
再activity 的布局 最外层 加上
android:fitsSystemWindows="true" android:clipToPadding="true"
这样状态栏将透明,布局中的背景会透过状态栏
5.0以上的系统
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT); }同样需要
android:fitsSystemWindows="true" android:clipToPadding="true"
不然布局,会顶上去,这个 可以根据具体情况添加,(例如引导页全屏或者全屏侧滑)