// Path: magicindicator/src/main/java/net/lucode/hackware/magicindicator/buildins/commonnavigator/model/PositionData.java
// public class PositionData {
//     public int mLeft;
//     public int mTop;
//     public int mRight;
//     public int mBottom;
//     public int mContentLeft;
//     public int mContentTop;
//     public int mContentRight;
//     public int mContentBottom;
// 
//     public int width() {
//         return mRight - mLeft;
//     }
// 
//     public int height() {
//         return mBottom - mTop;
//     }
// 
//     public int contentWidth() {
//         return mContentRight - mContentLeft;
//     }
// 
//     public int contentHeight() {
//         return mContentBottom - mContentTop;
//     }
// 
//     public int horizontalCenter() {
//         return mLeft + width() / 2;
//     }
// 
//     public int verticalCenter() {
//         return mTop + height() / 2;
//     }
// }


import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.annotation.TargetApi;
import android.os.Build;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Interpolator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.model.PositionData;
import java.util.ArrayList;
import java.util.List;
    };

    private ValueAnimator.AnimatorUpdateListener mAnimatorUpdateListener = new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            float positionOffsetSum = (Float) animation.getAnimatedValue();
            int position = (int) positionOffsetSum;
            float positionOffset = positionOffsetSum - position;
            if (positionOffsetSum < 0) {
                position = position - 1;
                positionOffset = 1.0f + positionOffset;
            }
            dispatchPageScrolled(position, positionOffset, 0);
        }
    };

    public FragmentContainerHelper() {
    }

    public FragmentContainerHelper(MagicIndicator magicIndicator) {
        mMagicIndicators.add(magicIndicator);
    }

    /**
     * IPagerIndicator支持弹性效果的辅助方法
     *
     * @param positionDataList
     * @param index
     * @return
     */
// Path: magicindicator/src/main/java/net/lucode/hackware/magicindicator/buildins/commonnavigator/model/PositionData.java
// public class PositionData {
//     public int mLeft;
//     public int mTop;
//     public int mRight;
//     public int mBottom;
//     public int mContentLeft;
//     public int mContentTop;
//     public int mContentRight;
//     public int mContentBottom;
// 
//     public int width() {
//         return mRight - mLeft;
//     }
// 
//     public int height() {
//         return mBottom - mTop;
//     }
// 
//     public int contentWidth() {
//         return mContentRight - mContentLeft;
//     }
// 
//     public int contentHeight() {
//         return mContentBottom - mContentTop;
//     }
// 
//     public int horizontalCenter() {
//         return mLeft + width() / 2;
//     }
// 
//     public int verticalCenter() {
//         return mTop + height() / 2;
//     }
// }


// Path: magicindicator/src/main/java/net/lucode/hackware/magicindicator/FragmentContainerHelper.java
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.annotation.TargetApi;
import android.os.Build;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Interpolator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.model.PositionData;
import java.util.ArrayList;
import java.util.List;

    };

    private ValueAnimator.AnimatorUpdateListener mAnimatorUpdateListener = new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            float positionOffsetSum = (Float) animation.getAnimatedValue();
            int position = (int) positionOffsetSum;
            float positionOffset = positionOffsetSum - position;
            if (positionOffsetSum < 0) {
                position = position - 1;
                positionOffset = 1.0f + positionOffset;
            }
            dispatchPageScrolled(position, positionOffset, 0);
        }
    };

    public FragmentContainerHelper() {
    }

    public FragmentContainerHelper(MagicIndicator magicIndicator) {
        mMagicIndicators.add(magicIndicator);
    }

    /**
     * IPagerIndicator支持弹性效果的辅助方法
     *
     * @param positionDataList
     * @param index
     * @return
     */
    public static PositionData getImitativePositionData(List<PositionData> positionDataList, int index) {