沉浸式状态栏简单实现
2018-03-07 17:41
162 查看
//设置状态栏为透明或者半透明 public static void translucentStatusBar(Activity activity, boolean hideStatusBarBackground) { Window window = activity.getWindow(); //添加Flag把状态栏设为可绘制模式 window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); if (hideStatusBarBackground) { //如果为全透明模式,取消设置Window半透明的Flag window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //设置状态栏为透明 window.setStatusBarColor(Color.TRANSPARENT); //设置window的状态栏不可见 window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); } else { //如果为半透明模式,添加设置Window半透明的Flag window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //设置系统状态栏处于可见状态 window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); } //view不根据系统窗口来调整自己的布局 ViewGroup mContentView = (ViewGroup) window.findViewById(Window.ID_ANDROID_CONTENT); View mChildView = mContentView.getChildAt(0); if (mChildView != null) { ViewCompat.setFitsSystemWindows(mChildView, false); ViewCompat.requestApplyInsets(mChildView); } }
hideStatusBarBackground为true表示状态栏全透明模式 否则为半透明二 在布局文件中的跟布局添加下面两个属性android:background="@color/colorPrimaryDark"
android:fitsSystemWindows="true"调用
在Activity中调用上面的方法即可
translucentStatusBar(this,true);大功告成!!
相关文章推荐
- Android沉浸式状态栏简单实现
- 4.4系统让App最简单的实现沉浸式状态栏
- Android 设置全屏沉浸式透明状态栏的工具类(超级简单,两步实现)
- Android沉浸式的状态栏的简单实现
- Android——实现简单沉浸式状态栏
- 简单实现沉浸式状态栏
- Android_简单实现沉浸式状态栏
- 沉浸式状态栏(修改状态栏)颜色的简单实现
- android 最简单实现沉浸式状态栏
- Android沉浸式状态栏的简单实现
- Android 沉浸式状态栏的简单实现
- android沉浸式状态栏的最简单实现
- android沉浸式状态栏简单实现
- 简单使用style实现沉浸式状态栏
- 沉浸式状态栏效果的简单实现
- Android沉浸式状态栏的简单实现
- Android 沉浸式状态栏 实现方式二 ( 更简单 )
- Android 沉浸式状态栏 实现方式二 ( 更简单 )
- Android 沉浸式状态栏实现,以及遇到的问题
- 沉浸式状态栏实现及遇到的坑