Android監聽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 ;
         }
         
     };
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM