scrollview监听滑动位置

Android 专栏收录该内容
284 篇文章 0 订阅
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 ;
         }
         
     };
}
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值