docs: public static void handleHeaderView(DrawerBuilder drawer) {
          //use the AccountHeader if set
          if (drawer.mAccountHeader != null) {
              if (drawer.mAccountHeaderSticky) {
                  drawer.mStickyHeaderView = drawer.mAccountHeader.getView();
              } else {
                  drawer.mHeaderView = drawer.mAccountHeader.getView();
                  drawer.mHeaderDivider = drawer.mAccountHeader.mAccountHeaderBuilder.mDividerBelowHeader;
                  drawer.mHeaderPadding = drawer.mAccountHeader.mAccountHeaderBuilder.mPaddingBelowHeader;
              }
          }
  
          //sticky header view
          if (drawer.mStickyHeaderView != null) {
              //add the sticky footer view and align it to the bottom
              RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
              layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, 1);
              drawer.mStickyHeaderView.setId(R.id.material_drawer_sticky_header);
              drawer.mSliderLayout.addView(drawer.mStickyHeaderView, 0, layoutParams);
  
              //now align the recyclerView below the stickyFooterView ;)
              RelativeLayout.LayoutParams layoutParamsListView = (RelativeLayout.LayoutParams) drawer.mRecyclerView.getLayoutParams();
              layoutParamsListView.addRule(RelativeLayout.BELOW, R.id.material_drawer_sticky_header);
              drawer.mRecyclerView.setLayoutParams(layoutParamsListView);
  
              //set a background color or the elevation will not work
              drawer.mStickyHeaderView.setBackgroundColor(UIUtils.getThemeColorFromAttrOrRes(drawer.mActivity, R.attr.material_drawer_background, R.color.material_drawer_background));
  
              if (drawer.mStickyHeaderShadow) {
                  //add a shadow
                  if (Build.VERSION.SDK_INT >= 21) {
                      drawer.mStickyHeaderView.setElevation(UIUtils.convertDpToPixel(4, drawer.mActivity));
                  } else {
                      View view = new View(drawer.mActivity);
                      view.setBackgroundResource(R.drawable.material_drawer_shadow_bottom);
                      drawer.mSliderLayout.addView(view, RelativeLayout.LayoutParams.MATCH_PARENT, (int) UIUtils.convertDpToPixel(4, drawer.mActivity));
                      //now align the shadow below the stickyHeader ;)
                      RelativeLayout.LayoutParams lps = (RelativeLayout.LayoutParams) view.getLayoutParams();
                      lps.addRule(RelativeLayout.BELOW, R.id.material_drawer_sticky_header);
                      view.setLayoutParams(lps);
                  }
              }
  
              //remove the padding of the recyclerView again we have the header on top of it
              drawer.mRecyclerView.setPadding(0, 0, 0, 0);
          }
  
          // set the header (do this before the setAdapter because some devices will crash else
          if (drawer.mHeaderView != null) {
              if (drawer.mRecyclerView == null) {
                  throw new RuntimeException("can't use a headerView without a recyclerView");
              }
  
              if (drawer.mHeaderPadding) {
                  drawer.getHeaderAdapter().add(new ContainerDrawerItem().withView(drawer.mHeaderView).withHeight(drawer.mHeiderHeight).withDivider(drawer.mHeaderDivider).withViewPosition(ContainerDrawerItem.Position.TOP));
              } else {
                  drawer.getHeaderAdapter().add(new ContainerDrawerItem().withView(drawer.mHeaderView).withHeight(drawer.mHeiderHeight).withDivider(drawer.mHeaderDivider).withViewPosition(ContainerDrawerItem.Position.NONE));
              }
              //set the padding on the top to 0
              drawer.mRecyclerView.setPadding(drawer.mRecyclerView.getPaddingLeft(), 0, drawer.mRecyclerView.getPaddingRight(), drawer.mRecyclerView.getPaddingBottom());
          }
      }