/**
  * Set the view as header.
  *
  * @param header The inflated header
  * @param view The RecyclerView to set scroll listeners
  */
 public void setParallaxHeader(View header, final RecyclerView view) {
   mRecyclerView = view;
   mHeader = new CustomRelativeWrapper(header.getContext(), mShouldClipView);
   mHeader.setLayoutParams(
       new ViewGroup.LayoutParams(
           ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
   mHeader.addView(
       header,
       new RelativeLayout.LayoutParams(
           ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
   view.setOnScrollListener(
       new RecyclerView.OnScrollListener() {
         @Override
         public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
           super.onScrolled(recyclerView, dx, dy);
           if (mHeader != null) {
             translateHeader(
                 mRecyclerView.getLayoutManager().getChildAt(0) == mHeader
                     ? mRecyclerView.computeVerticalScrollOffset()
                     : mHeader.getHeight());
           }
         }
       });
 }
 /**
  * Translates the adapter in Y
  *
  * @param of offset in px
  */
 public void translateHeader(float of) {
   float ofCalculated = of * mScrollMultiplier;
   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB && of < mHeader.getHeight()) {
     mHeader.setTranslationY(ofCalculated);
   } else if (of < mHeader.getHeight()) {
     TranslateAnimation anim = new TranslateAnimation(0, 0, ofCalculated, ofCalculated);
     anim.setFillAfter(true);
     anim.setDuration(0);
     mHeader.startAnimation(anim);
   }
   mHeader.setClipY(Math.round(ofCalculated));
   if (mParallaxScroll != null) {
     final RecyclerView.ViewHolder holder = mRecyclerView.findViewHolderForAdapterPosition(0);
     float left;
     if (holder != null) {
       left = Math.min(1, ((ofCalculated) / (mHeader.getHeight() * mScrollMultiplier)));
     } else {
       left = 1;
     }
     mParallaxScroll.onParallaxScroll(left, of, mHeader);
   }
 }