Android 监听ScrollView的滑动
2015-01-11 20:03
225 查看
有时候我们需要监听ScroView的滑动情况,比如滑动了多少距离,是否滑到布局的顶部或者底部。可惜的是SDK并没有相应的方法,不过倒是提供了一个
protected void onScrollChanged(int x, int y, int oldx, int oldy)
方法,显然这个方法是不能被外界调用的,因此就需要把它暴露出去,方便使用。解决方式就是写一个接口,
package com.example.demo1;
public interface ScrollViewListener {
void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy);
}
然后重写ScrollView类,给它提供上面写的回调接口。
package com.example.demo1;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ScrollView;
public class ObservableScrollView extends ScrollView {
private ScrollViewListener scrollViewListener = null;
public ObservableScrollView(Context context) {
super(context);
}
public ObservableScrollView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
public ObservableScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setScrollViewListener(ScrollViewListener scrollViewListener) {
this.scrollViewListener = scrollViewListener;
}
@Override
protected void onScrollChanged(int x, int y, int oldx, int oldy) {
super.onScrollChanged(x, y, oldx, oldy);
if (scrollViewListener != null) {
scrollViewListener.onScrollChanged(this, x, y, oldx, oldy);
}
}
}
protected void onScrollChanged(int x, int y, int oldx, int oldy)
方法,显然这个方法是不能被外界调用的,因此就需要把它暴露出去,方便使用。解决方式就是写一个接口,
package com.example.demo1;
public interface ScrollViewListener {
void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy);
}
然后重写ScrollView类,给它提供上面写的回调接口。
package com.example.demo1;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ScrollView;
public class ObservableScrollView extends ScrollView {
private ScrollViewListener scrollViewListener = null;
public ObservableScrollView(Context context) {
super(context);
}
public ObservableScrollView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
public ObservableScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setScrollViewListener(ScrollViewListener scrollViewListener) {
this.scrollViewListener = scrollViewListener;
}
@Override
protected void onScrollChanged(int x, int y, int oldx, int oldy) {
super.onScrollChanged(x, y, oldx, oldy);
if (scrollViewListener != null) {
scrollViewListener.onScrollChanged(this, x, y, oldx, oldy);
}
}
}
相关文章推荐
- Android监听ScrollView滑动到顶端和底部
- Android 监听ScrollView的滑动
- Android 监听ScrollView的滑动
- Android中自定义ScrollView的滑动监听事件,并在滑动时渐变标题栏背景颜色
- Android 监听ScrollView滑动 实现布局背景、文本颜色渐变
- Android中监听ScrollView滑动停止和滑动到底部
- Android 监听ScrollView滑动距离简单处理
- android 监听scrollview 滑动动作
- Android监听ScrollView滑动到顶端和底部
- Android中自定义ScrollView的滑动监听事件
- Android中实现监听ScrollView滑动事件
- android监听ScrollView滑动停止
- 【ScrollView】Android ScrollView监听滑动事件
- Android ScrollView滑动的监听方法为什么会报错
- Android 监听ScrollView的滑动
- Android中监听ScrollView滑动停止和滑动到底部
- Android中实现监听ScrollView滑动事件
- Android ScrollView滑动监听
- Android ScrollView监听滑动到顶部和底部的两种方式
- Android - ScrollView 监听滑动停止,顶部还是底部?