自定义一个监听滑动到底部的scrollview

一.scrollview的简介及使用需求

1、ScrollView和HorizontalScrollView是为控件或者布局添加滚动条

2、上述两个控件只能有一个孩子,但是它并不是传统意义上的容器

3、上述两个控件可以互相嵌套

4、滚动条的位置现在的实验结果是:可以由layout_width和layout_height设定

5、ScrollView用于设置垂直滚动条,HorizontalScrollView用于设置水平滚动条:需要注意的是,有一个属性是    scrollbars 可以设置滚动条的方向:但是ScrollView设置成horizontal是和设置成none是效果同,HorizontalScrollView设置成vertical和none的效果同。

二.自定义Scrollview

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ScrollView;

/**
 * Created by shuai on 2017/9/14.
 */

public class BottomScrollView extends ScrollView {

    private OnScrollToBottomListener onScrollToBottom;

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

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

    @Override
    protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX,
                                  boolean clampedY) {
        super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
        if(scrollY != 0 && null != onScrollToBottom){
            onScrollToBottom.onScrollBottomListener(clampedY);
        }
    }

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

    public interface OnScrollToBottomListener{
        public void onScrollBottomListener(boolean isBottom);
    }
}

三.自定义Scrollview的使用

private BottomScrollView scrollView;
scrollView= (BottomScrollView) rootView.findViewById(R.id.sc);
scrollView.setOnScrollToBottomLintener(new BottomScrollView.OnScrollToBottomListener() {
   @Override
   public void onScrollBottomListener(boolean isBottom) {
      // TODO Auto-generated method stub
      if(isBottom) {
         tv_loadmore.setVisibility(View.VISIBLE);
         i = i+1;
         //检测网络,无网络不请求数据
         if(isNetworkAvailable(getActivity())) {
            new Thread(runnableUi2).start();
            Thread thread=new Thread(runnableUi2);
            //try {
            //thread.sleep(1500);
            thread.start();
            /*} catch (InterruptedException e) {
               e.printStackTrace();
            }*/
         }else{
            Toast.makeText(getActivity(), "未连接网络", Toast.LENGTH_SHORT).show();
            ll_loadmore.setVisibility(View.VISIBLE);
            pb_loadmore.setVisibility(View.GONE);
            tv_loadmore.setText("未连接网络");
         }

      }
   }
});
onScrollBottomListener方法是监听scrollview的滑动,
isBottom可以判断是否滑动到底部,若滑动到底部则可以执行相应的操作

你可能感兴趣的:(android)