scrollview监听滑动位置

Android监听ScrollView滑动到顶端和底部
 
 
package cn.testscrollview;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ScrollView;
import android.app.Activity;
/**
  * Demo描述:
  * 监听ScrollView滑动到顶端和底部
  *
  * 注意事项:
  * 1 mScrollView.getChildAt(0).getMeasuredHeight()表示:
  *   ScrollView所占的高度.即ScrollView内容的高度.常常有一
  *   部分内容要滑动后才可见,这部分的高度也包含在了
  *   mScrollView.getChildAt(0).getMeasuredHeight()中
  *  
  * 2 view.getScrollY表示:
  *   ScrollView顶端已经滑出去的高度
  *  
  * 3 view.getHeight()表示:
  *   ScrollView的可见高度
  *  
  */
public class MainActivity extends Activity {
     private ScrollView mScrollView;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.main);
         init();
     }
     private void init(){
         mScrollView=(ScrollView) findViewById(R.id.scrollView);
         mScrollView.setOnTouchListener( new TouchListenerImpl());
     }
     private class TouchListenerImpl implements OnTouchListener{
         @Override
         public boolean onTouch(View view, MotionEvent motionEvent) {
             switch (motionEvent.getAction()) {
             case MotionEvent.ACTION_DOWN:
 
                 break ;
             case MotionEvent.ACTION_MOVE:
                  int scrollY=view.getScrollY();
                  int height=view.getHeight();
                  int scrollViewMeasuredHeight=mScrollView.getChildAt( 0 ).getMeasuredHeight();
                  if (scrollY== 0 ){
                         System.out.println( "滑动到了顶端 view.getScrollY()=" +scrollY);
                     }
                  if ((scrollY+height)==scrollViewMeasuredHeight){
                         System.out.println( "滑动到了底部 scrollY=" +scrollY);
                         System.out.println( "滑动到了底部 height=" +height);
                         System.out.println( "滑动到了底部 scrollViewMeasuredHeight=" +scrollViewMeasuredHeight);
                     }
                 break ;
 
             default :
                 break ;
             }
             return false ;
         }
         
     };
}

你可能感兴趣的:(scrollview监听滑动位置)