沉浸状态栏的实现(5.0以上方案)

沉浸状态栏的实现(5.0以上方案)

效果图

沉浸状态栏的实现(5.0以上方案)_第1张图片

步骤:

  1. 移除ContentView的FLAG_TRANSLUCENT_STATUS属性
  2. 设置ContentView的fitsSysyemWindowtrue
  3. 设置window的FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS属性
  4. 设置状态栏的颜色
  5. 设置contentView的第一个子view的fitsSystemWindow属性为true

代码

Window window = this.getWindow();
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        window.setStatusBarColor(getResources().getColor(R.color.colorPrimary));
        ViewGroup mContentView = (ViewGroup) this.findViewById(Window.ID_ANDROID_CONTENT);
        assert mContentView != null;
        mContentView.setFitsSystemWindows(true);
        View mChildView = mContentView.getChildAt(0);
        if (mChildView != null) {
            ViewCompat.setFitsSystemWindows(mChildView, true);
        }

你可能感兴趣的:(沉浸状态栏的实现(5.0以上方案))