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(),也可以,他们的值相同
....
}