Android中scrollview滑动监测
2016-07-21 13:29
459 查看
原文http://blog.csdn.net/u012527802/article/details/47320009
Android自带的ScrollView对于滑动监听接口没有开放,然而在许多时候记录ScrollView的滑动位置,实现这个功能比较简单,自己实现一个ObserveScrollView类来继承ScrollView,然后重写里面的onScrollChanged(int l, int t, int oldl, int oldt)方法,本方法就是ScrollView的滑动监听,接着声明一个接口,在重写的方法里利用接口回调,将滑动的数据传出去。
onScrollChanged(int l, int t, int oldl, int oldt)方法的4个参数,以屏幕的左上角为(0,0)点,l表示滑动后的x值,oldl表示滑动前的x位置,t表示滑动后的y值,oldt表示滑动前的y位置。
下面直接上代码:
[java] view
plain copy
public class ObserveScrollView extends ScrollView {
private ScrollListener mListener;
public static interface ScrollListener {//声明接口,用于传递数据
public void scrollOritention(int l, int t, int oldl, int oldt);
}
public ObserveScrollView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public ObserveScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public ObserveScrollView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
// TODO Auto-generated method stub
super.onScrollChanged(l, t, oldl, oldt);
if (mListener != null) {
mListener.scrollOritention(l, t, oldl, oldt);
}
}
public void setScrollListener(ScrollListener l) {
this.mListener = l;
}
}
然后在布局文件中用重写的ObserveScrollView代替自带的ScrollView,并在代码中设置监听器。
[java] view
plain copy
scrollview.setScrollListener(new ScrollListener() {
@Override
public void scrollOritention(int l, int t, int oldl, int oldt) {
// TODO Auto-generated method stub
//滑动数据已经接收,在这里实现你的功能
}
});
Android自带的ScrollView对于滑动监听接口没有开放,然而在许多时候记录ScrollView的滑动位置,实现这个功能比较简单,自己实现一个ObserveScrollView类来继承ScrollView,然后重写里面的onScrollChanged(int l, int t, int oldl, int oldt)方法,本方法就是ScrollView的滑动监听,接着声明一个接口,在重写的方法里利用接口回调,将滑动的数据传出去。
onScrollChanged(int l, int t, int oldl, int oldt)方法的4个参数,以屏幕的左上角为(0,0)点,l表示滑动后的x值,oldl表示滑动前的x位置,t表示滑动后的y值,oldt表示滑动前的y位置。
下面直接上代码:
[java] view
plain copy
public class ObserveScrollView extends ScrollView {
private ScrollListener mListener;
public static interface ScrollListener {//声明接口,用于传递数据
public void scrollOritention(int l, int t, int oldl, int oldt);
}
public ObserveScrollView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public ObserveScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public ObserveScrollView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
// TODO Auto-generated method stub
super.onScrollChanged(l, t, oldl, oldt);
if (mListener != null) {
mListener.scrollOritention(l, t, oldl, oldt);
}
}
public void setScrollListener(ScrollListener l) {
this.mListener = l;
}
}
然后在布局文件中用重写的ObserveScrollView代替自带的ScrollView,并在代码中设置监听器。
[java] view
plain copy
scrollview.setScrollListener(new ScrollListener() {
@Override
public void scrollOritention(int l, int t, int oldl, int oldt) {
// TODO Auto-generated method stub
//滑动数据已经接收,在这里实现你的功能
}
});
相关文章推荐
- 初学安卓路之初识ListView
- Android: 使用JitPack发布你的Github开源库
- Android Versions
- geekband android #5 第二周分享(布局、ListView)
- Android 之实现仿IOS弹性ScrollView
- AndroidStudio 友盟多渠道打包
- Android 获取栈顶activity并在service 中弹出全局dialog解决方法
- Notification
- android 程序启动的引导页 简单版
- Android 常用的adb命令
- Android中短信发送与接受
- 关于Android Launcher3相关优秀文章的记录
- Android内存泄漏的八种可能
- Android studio 的repositories配置
- Android Toast的完全自定义与工具类的编写
- android中一个TextView实现其中内容大小颜色不同的效果
- Android静态安全检测 -> logcat可能泄露隐私敏感信息
- Android App应用启动分析与优化
- Android与PC蓝牙交互
- Android Toolbar+DrawerLayout使用细节