@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());
    }
  }
  @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());
  }
Exemplo n.º 3
0
 @Override
 public int[] getRemoteStyleableArrayFromLocal(int[] localStyleableArray) {
   int localStyleableId = Arrays.hashCode(localStyleableArray);
   int indexOfRemoteArray = mStyleableArrayMapping.indexOfKey(localStyleableId);
   if (indexOfRemoteArray >= 0) return mStyleableArrayMapping.valueAt(indexOfRemoteArray);
   AddOnImpl addOn = mAddOnWeakReference.get();
   if (addOn == null) return new int[0];
   Context askContext = addOn.mAskAppContext;
   Context remoteContext = addOn.getPackageContext();
   if (remoteContext == null) return new int[0];
   int[] remoteAttrIds =
       Support.createBackwardCompatibleStyleable(
           localStyleableArray, askContext, remoteContext, mAttributesMapping);
   mStyleableArrayMapping.put(localStyleableId, remoteAttrIds);
   return remoteAttrIds;
 }