Android中监听ScrollView滑动停止和滑动到底部

来源:互联网 发布:hive sql 函数大全 编辑:程序博客网 时间:2024/05/17 03:40

1.监听ScrollView滑动停止:

/********************监听ScrollView滑动停止*****************************/scrollView.setOnTouchListener(new OnTouchListener() {private int lastY = 0;private int touchEventId = -9983761;Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);View scroller = (View) msg.obj;if (msg.what == touchEventId) {if (lastY == scroller.getScrollY()) {handleStop(scroller);} else {handler.sendMessageDelayed(handler.obtainMessage(touchEventId, scroller), 5);lastY = scroller.getScrollY();}}}};public boolean onTouch(View v, MotionEvent event) {if (event.getAction() == MotionEvent.ACTION_UP) {handler.sendMessageDelayed(handler.obtainMessage(touchEventId, v), 5);}return false;}private void handleStop(Object view) {ScrollView scroller = (ScrollView) view;scrollY = scroller.getScrollY();}});/***********************************************************/



2.监听ScrollView滑动到底部:

package com.example.webviewdemo;import android.content.Context;import android.util.AttributeSet;import android.widget.ScrollView;public class ScrollBottomScrollView extends ScrollView {private ScrollBottomListener scrollBottomListener;public ScrollBottomScrollView(Context context) {super(context);}public ScrollBottomScrollView(Context context, AttributeSet attrs) {super(context, attrs);}public ScrollBottomScrollView(Context context, AttributeSet attrs,int defStyle) {super(context, attrs, defStyle);}@Overrideprotected void onScrollChanged(int l, int t, int oldl, int oldt){if(t + getHeight() >=  computeVerticalScrollRange()){//ScrollView滑动到底部了scrollBottomListener.scrollBottom();}}public void setScrollBottomListener(ScrollBottomListener scrollBottomListener){this.scrollBottomListener = scrollBottomListener;}public interface ScrollBottomListener{public void scrollBottom();}}

重写ScrollView的onScrollChanged的方法。

原创粉丝点击