Android的ListView控件:压倒一切的原因滚动不执行 [英] Android ListView: overriding causes scrolling do not executed
本文介绍了Android的ListView控件:压倒一切的原因滚动不执行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想知道,如果用户向上或向下滚动。
我已经开始重写 OnGestureListener.onScroll()
方法,并将我的 GestureDetector
为的ListView
。
I want to know if user is scrolling up or down.
I have began to override the OnGestureListener.onScroll()
method and set my GestureDetector
for the ListView
.
public class ContactList extends ListView {
GestureDetector gestureDetector;
public ContactList(Context context) {
super(context);
initView();
}
public ContactList(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initView();
}
public ContactList(Context context, AttributeSet attrs) {
super(context, attrs);
initView();
}
private void initView() {
gestureDetector = new GestureDetector(new SimpleOnGestureListener() {
public boolean onScroll(MotionEvent firstEvent, MotionEvent secondEvent, float distanceX, float distanceY) {
Log.d("tag", "onScroll "+firstEvent.getAction());
Log.d("tag", "onScroll "+secondEvent.getAction());
return true;
};
});
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
}
调试,我注意到它从onTouchEvent(通行证),但不能从onScroll()和滚动不受的ListView
。
我在做什么错了?
感谢您
推荐答案
你有没有打过电话 super.onTouchEvent(事件)
在 onTouchEvent
方法?
Have you tried calling super.onTouchEvent(event)
in your onTouchEvent
method?
修改 - 我想你想返回假
,以及在 onScroll
方法。
Edit - I think you want to return false
as well in your onScroll
method.
那么你的 onTouchEvent
方法应该是:
@Override
public boolean onTouchEvent(MotionEvent event) {
if (gestureDetector.onTouchEvent(event)) {
return true;
}
return super.onTouchEvent(event);
}
这篇关于Android的ListView控件:压倒一切的原因滚动不执行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文