怎麼判斷android中ScrollView滑動到了最底部

滾動到頂部判斷:
getScrollY() == 0
滾動到底部判斷:
View childView = getChildAt(0);
childView.getMeasuredHeight() <= getScrollY() + getHeight();
其中getChildAt表示得到ScrollView的child View
childView.getMeasuredHeight()表示得到子View的高度,
 getScrollY()表示得到y軸的滾動距離,
getHeight()爲scrollView的高度
getScrollY()達到最大時加上scrollView的高度就的就等於它內容的高度了.
判斷滑動位置的地方,可以有兩種方式:
1、實現OnTouchListener來監聽是否滑動到最底部
 OnTouchListener onTouchListener=new OnTouchListener(){  
            @Override  
            public boolean onTouch(View v, MotionEvent event) { 
                switch (event.getAction()) {
                    case MotionEvent.ACTION_UP:
                        if (childView  != null && childView .getMeasuredHeight() <= getScrollY() + getHeight()) {
                        } else if (getScrollY() == 0) {
                        }
                    break;
                }
                return false;
            }
 } 

2、重寫ScrollView的onScrollChanged的方法,在onScrollChanged函數中判斷
public class myScrollView extends ScrollView
{
    public myScrollView(Context context)
    {
        super(context);
    }
    public myScrollView(Context context, AttributeSet attributeSet)
    {
        super(context,attributeSet);
    }

    @Override
    protected void onScrollChanged(int l, int t, int oldl, int oldt)
    {
        View view = (View)getChildAt(getChildCount()-1);
        int d = view.getBottom();
        d -= (getHeight()+getScrollY());
        if(d==0)
        {
            //you are at the end of the list in scrollview 
            //do what you wanna do here
        }
        else
            super.onScrollChanged(l,t,oldl,oldt);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章