@Override
  public void onPageSelected(int position) {
    SparseArrayCompat<ScrollTabHolder> scrollTabHolders = mAdapter.getScrollTabHolders();

    if (scrollTabHolders == null || scrollTabHolders.size() != mNumFragments) {
      return;
    }

    ScrollTabHolder currentHolder = scrollTabHolders.valueAt(position);
    currentHolder.adjustScroll(
        (int) (mHeader.getHeight() + mHeader.getTranslationY()), mHeader.getHeight());
  }
  @Override
  public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    int currentItem = mViewPager.getCurrentItem();
    if (positionOffsetPixels > 0) {
      SparseArrayCompat<ScrollTabHolder> scrollTabHolders = mAdapter.getScrollTabHolders();

      ScrollTabHolder fragmentContent;
      if (position < currentItem) {
        // Revealed the previous page
        fragmentContent = scrollTabHolders.valueAt(position);
      } else {
        // Revealed the next page
        fragmentContent = scrollTabHolders.valueAt(position + 1);
      }

      fragmentContent.adjustScroll(
          (int) (mHeader.getHeight() + mHeader.getTranslationY()), mHeader.getHeight());
    }
  }