Android监听ScrollView滑动到顶端和底部
2016-06-16 10:41
483 查看
<span style="font-size:18px;">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; } }; }</span>
<pre name="code" class="java"><span style="font-size:18px;"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <ScrollView android:id="@+id/scrollView" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello_world"/> </ScrollView> </RelativeLayout></span>
相关文章推荐
- Android中通过反射获取资源Id
- Android - View绘图原理总结
- Android Studio下使用NDK
- 《Android深入透析》之常用设计模式经验谈
- android 删除sd卡某个目录下的所有文件
- Android ViewPager + Fragment的使用
- Android中的序列化浅析
- android悬浮窗口的实现
- android:ToolBar详解
- android 获取设备信息
- Android M运行时权限详解
- xmlns:android作用以及自定义布局属性
- android shape 中的六种子标签
- Android模拟屏幕鼠标
- 使用NTP服务器同步Android设备时间
- 利用反射 获取android布局文件中设置的属性值
- Android主线程、子线程通信(Thread+handler)
- Android 之回调的简单用法
- android编码时的细节进行优化内存
- pull解析一些特殊类型的XML文件