Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 堅向的ViewPager,上下滑動的組件,android上下滑動 VerticalPager

堅向的ViewPager,上下滑動的組件,android上下滑動 VerticalPager

編輯:關於Android編程

package com.zhulin.android.atools;

import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Interpolator;
import android.widget.Scroller;
import android.widget.Toast;

public class VerticalPager extends ViewGroup{

	private Scroller mScroller;
	private Context mContext;
	public VerticalPager(Context context, AttributeSet attrs) {
		super(context, attrs);
		this.mContext=context;
		mScroller=new Scroller(context);
//		mScroller=new Scroller(mContext, new Interpolator() {
//			
//			@Override
//			public float getInterpolation(float input) {
//				return 300;
//			}
//		});
		
	}

	@Override
	protected void onLayout(boolean changed, int l, int t, int r, int b) {
		int totalHeight=0;
		int count=getChildCount();

		for(int i=0;i(getHeight()*(getChildCount()-1))){
				View lastView=getChildAt(getChildCount()-1);
				
				mScroller.startScroll(0,lastView.getTop()+300, 0, -300);
			}else{
				int position=getScrollY()/getHeight();
				int mod=getScrollY()%getHeight();
				
				
				if(mod>getHeight()/3){
					View positionView=getChildAt(position+1);
					mScroller.startScroll(0, positionView.getTop()-300, 0, +300);
				}else{
					View positionView=getChildAt(position);
					mScroller.startScroll(0, positionView.getTop()+300, 0, -300);
				}
				
				
			}
			invalidate();
			break;
//		case MotionEvent.ACTION_MASK:
//			if(getScrollY()<0){
//				mScroller.startScroll(0, 0, 0, 0);
//			}else if(getScrollY()>(getHeight()*(getChildCount()-1)){
//			}
//			invalidate();
//			break;
		}

		return true;
	}
	
	@Override
	public void computeScroll() {
		super.computeScroll();
		
		if(mScroller.computeScrollOffset()){
			scrollTo(0, mScroller.getCurrY());
		}else{
			
		}
	}

}

xml布局




    

        

        
        
         
         
          
    



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved