/**
* 作者: ch
* 时间: 2018/7/30 0030-下午 2:53
* 描述:
* 来源:
*/publicclassVerticalViewPagerextendsViewPager{
privateboolean isVertical =false;publicVerticalViewPager(@NonNull Context context){
super(context);}publicVerticalViewPager(@NonNull Context context,@Nullable AttributeSet attrs){
super(context, attrs);}privatevoidinit(){
// The majority of the magic happens heresetPageTransformer(true,newHorizontalVerticalPageTransformer());// The easiest way to get rid of the over scroll drawing that happens on the left and rightsetOverScrollMode(OVER_SCROLL_NEVER);}publicbooleanisVertical(){
return isVertical;}publicvoidsetVertical(boolean vertical){
isVertical = vertical;init();}privateclassHorizontalVerticalPageTransformerimplementsPageTransformer{
privatestaticfinalfloat MIN_SCALE =0.75f;@OverridepublicvoidtransformPage(View page,float position){
if(isVertical){
if(position <-1){
page.setAlpha(0);}elseif(position <=1){
page.setAlpha(1);// Counteract the default slide transitionfloat xPosition = page.getWidth()*-position;
page.setTranslationX(xPosition);//set Y position to swipe in from topfloat yPosition = position * page.getHeight();
page.setTranslationY(yPosition);}else{
page.setAlpha(0);}}else{
int pageWidth = page.getWidth();if(position <-1){
// [-Infinity,-1)// This page is way off-screen to the left.
page.setAlpha(0);}elseif(position <=0)