我正在尝试检测ScrollView何时完成滚动,以便稍微修改其位置.在我使用ACTION_UP检测用户何时举起手指之前,我意识到这不允许我使用“投掷”,因为它会在完成之前修改滚动.
有没有办法检测ScrollView何时完成滚动?或者像ListView一样检测它的滚动状态?
关于如何实现这个的任何其他想法?
谢谢.
最佳答案
我实施了一个基于Jourbac评论的解决方案.
问候
import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.ScrollView;
public class MyScrollView extends ScrollView {
private static final int WHAT = 1;
class MyHandler extends Handler {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(!hasMessages(WHAT)) {
Log.i("TestScroll","Last msg!. Position from "
+ msg.arg1 + " to " + msg.arg2);
}
}
}
private Handler mHandler = new MyHandler();
public MyScrollView(Context context) {
super(context);
}
public MyScrollView(Context context,AttributeSet attrs) {
super(context,attrs);
}
public MyScrollView(Context context,AttributeSet attrs,int defStyle) {
super(context,attrs,defStyle);
}
@Override
protected void onScrollChanged(int l,int t,int oldl,int oldt) {
super.onScrollChanged(l,t,oldl,oldt);
final Message msg = Message.obtain();
msg.arg1 = oldt;
msg.arg2 = t;
msg.what = WHAT;
mHandler.sendMessageDelayed(msg,500);
}
}
原文地址:https://www.jb51.cc/android/430283.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。