监听srollview滑动到底部

1.scrollview本身没有监听是否滚动到底部的事件 ,所以我们需要一个类继承自scrollview从而重写里面的方法,直接上代码了

2.

public class RouteScrollView extends ScrollView
{


    private OnScrollToBottomListener onScrollToBottom;


    public RouteScrollView(Context context, AttributeSet attrs)
    {
        super(context, attrs);
    }


    public RouteScrollView(Context context)
    {
        super(context);
    }


    public void setOnScrollToBottomLintener(OnScrollToBottomListener listener)
    {
        onScrollToBottom = listener;
    }


    @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)
        {
            onScrollToBottom.onScrollBottomListener(true);
        }
        else
            super.onScrollChanged(l, t, oldl, oldt);

    }


    public interface OnScrollToBottomListener         //这个接口外调
    {
        public void onScrollBottomListener(boolean isBottom);
    }
}


3.然而在xml文件中引用


    android:id="@+id/scroller"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:scrollbars="none" >

            android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
     
   

4.  RouteScrollView scrollview = (RouteScrollView) view.findViewById(R.id.scroller);

        scrollview.setOnScrollToBottomLintener(new OnScrollToBottomListener()
        {


            @Override
            public void onScrollBottomListener(boolean isBottom)
            {
                if (isBottom)
                {
                 //  isBottom 返回true则滑动到底部
                }else

               {

                 //未滑动到底部

                  }
            }
        });


你可能感兴趣的:(监听srollview滑动到底部)