android 沉浸式状态栏实现

来源:互联网 发布:java web项目实例视频 编辑:程序博客网 时间:2024/05/20 07:34

androi6.0沉浸式状态栏实现

1.直接在baseactivity中加入如下代码:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {    Window window = getWindow();    window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS                    | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);                 window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE| View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);            window.setStatusBarColor(0xfffafafa);//          window.setNavigationBarColor(Color.TRANSPARENT);        }

还有就是在布局文件中添加 android:fitsSystemWindows=”true”属性

2.需要注意的问题:

在设置状态栏为白色等亮色时,需要设置View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR才能将图标变成黑色(不设置时为白色)
3,其他版本可参考:参考一 参考2

附加:android5.0以上实现 全屏背景且显示状态栏和导航栏
图片名称

1,首先activity中的oncreate中加入如下代码:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {            Window window = getWindow();            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS                    | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);            window.setStatusBarColor(Color.TRANSPARENT);            window.setNavigationBarColor(Color.TRANSPARENT);        }

2,在对应的布局文件的根布局上加

 android:fitsSystemWindows="true" android:background="@drawable/bg"//背景图片
1 0