android ScrollView滚动距离和判断滚动停止状态
来源:互联网 发布:重庆seo外包服务商 编辑:程序博客网 时间:2024/05/29 16:08
原文:http://www.2cto.com/kf/201401/273264.html
今天很高兴,自己解决了判断ScrollView滚动停止的监听,现在分享给大家。
因为ScrollView没有像listView中的setOnScrollListener()监听,当然也就没有SCROLL_STATE_IDLE等。
解决的问题:
公司项目需要在一个列表中,类似listView,因为业务要求,这个列表是用拼凑的方法,拼凑出来的,所以外层包裹一层ScrollView。
现在公司要求,滑动到最后一条的时候,加载下一部分数据。如果使用scrollView.getScrollY()获得的是你手滑动的距离,当你松开手之后,界面会继续滑动,这个方法是获取不到新的Y值,所以,我们可以添加监听,时刻监视着ScrollView的变化。
需要先给ScrollView添加TouchListener ,在MotionEVENT.Up中,发送延迟的handler,这样就可以起到监听的作用。并且记录当前的高度lastY
在handler中,如果高度lastY和scrollView.getScrollY()是相等的,则表示,ScrollView已经停止,这时再根据你的要求判断停止之后的业务。这时的scrollView.getScrollY()就是控件滚动的距离。如果不相等,证明孩子啊滑动中,继续发handler继续记录lastY。
废话不多说,代码如下。希望对你有所帮助。
1234567891011121314151617181920212223242526272829303132333435363738394041vBookDetail.setOnTouchListener(
new
OnTouchListener() {
private
int
lastY =
0
;
private
int
touchEventId = -
9983761
;
Handler handler =
new
Handler() {
@Override
public
void
handleMessage(Message msg) {
super
.handleMessage(msg);
View scroller = (View) msg.obj;
if
(msg.what == touchEventId) {
if
(lastY == scroller.getScrollY()) {
//停止了,此处你的操作业务
}
else
{
handler.sendMessageDelayed(handler.obtainMessage(touchEventId, scroller),
1
);
lastY = scroller.getScrollY();
}
}
}
};
@Override
public
boolean
onTouch(View v, MotionEvent event) {
isScoll =
false
;
int
eventAction = event.getAction();
int
y = (
int
) event.getRawY();
switch
(eventAction) {
case
MotionEvent.ACTION_UP:
handler.sendMessageDelayed(handler.obtainMessage(touchEventId, v),
5
);
break
;
default
:
break
;
}
return
false
;
}
});
0 0
- android ScrollView滚动距离和判断滚动停止状态
- android ScrollView滚动距离和判断滚动停止状态
- android ScrollView滚动距离和判断滚动停止状态
- android 关于判断scrollView滚动停止
- android 关于判断scrollView滚动停止
- Android 自定义ScrollView嵌套滚动兼容,监听滑动状态:顶部、底部、停止、滑动中
- iOS开发 - ScrollView滚动时怎么判断滚动停止及滚动的方向
- [ios]ScrollView中根据滚动距离来判断当前页数
- iOS ScrollView中根据滚动距离来判断当前页数
- android判断scrollview滚动到底和滚动到右的问题
- 判断scrollView滚动结束
- 判断屏幕滚动距离
- JS判断滚动条是否停止滚动
- js判断滚动条是否停止滚动
- Android HorizontalScrollView和ScrollView 水平滚动 垂直滚动
- android初学------设置ScrollView滚动和禁止滚动
- android gridview 停止滚动
- Android双向滚动ScrollView
- avro学习入门一
- 统计文件内容行数
- xampp3.2 apache 配置多端口 多域名
- 麦蒂自曝8月曾同科比合练 未来有望复出再战NBA
- 三大框架ssh中导入导出EXCEL数据
- android ScrollView滚动距离和判断滚动停止状态
- POJ 3264 Balanced Lineup
- Silverlight Grid网格线
- 指向指针的指针 char **使用技巧
- UDP点对点通讯、广播通讯、多播通讯
- 获取Odoo中由Bazaar管理的例子源代码
- C语言时间日期函数总结
- 领导带兵“两不,三要”
- 浮点数精度