Android监听ScrollView滑动到顶端和底部
2016-06-25 12:02
597 查看
public class MainActivity extends Activity{
private ScrollView sl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sl = (ScrollView) findViewById(R.id.sl);
sl.setOnTouchListener(new View.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=sl.getChildAt(0).getMeasuredHeight();
if(scrollY==0){
System.out.println("滑动到了顶端 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;
}
});
//另外一个
if(getScrollY() + getHeight() >= computeVerticalScrollRange())
{
Log.d(TAG,"------滚动到最下方------");
}
else
{
Log.d(TAG,"没有到最下方");
}
或:重写ScrollView
protected void onScrollChanged(int l, int t, int oldl, int oldt)
{
用t代替上面的getScrollY(),也可以,他们的值相同
....
}
private ScrollView sl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sl = (ScrollView) findViewById(R.id.sl);
sl.setOnTouchListener(new View.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=sl.getChildAt(0).getMeasuredHeight();
if(scrollY==0){
System.out.println("滑动到了顶端 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;
}
});
//另外一个
if(getScrollY() + getHeight() >= computeVerticalScrollRange())
{
Log.d(TAG,"------滚动到最下方------");
}
else
{
Log.d(TAG,"没有到最下方");
}
或:重写ScrollView
protected void onScrollChanged(int l, int t, int oldl, int oldt)
{
用t代替上面的getScrollY(),也可以,他们的值相同
....
}
相关文章推荐
- 【Android官方文档】翻译Android官方文档-AIDL(三)
- 图解 Android 事件分发机制
- Android的各种Drawable详解
- Android studio启动后卡在refreshing gradle project
- win7下iTools Android模拟器安装与配置
- android 公共变量使用
- Android属性动画使用总结
- android_开发中那些踩过的和没踩的坑
- android 简单的广告条实现
- (OK)(OK) cross compile quagga-0.99.21mr2.2 for android-x86 in Fedora23
- android6.25存储卡权限
- Android总结(4-8章)
- android 四大组件之Service(6) 粘性与非粘性
- 新浪微博腾讯微博Android开发笔记
- Android Studio设置编码格式
- Android点阵屏效果的控件
- Android点阵屏效果的控件
- Android 开机自启动
- Git和SVN的区别
- Android 自定义View基础-View的测量