我有一个自定义视图,我想设置长按一下监听器。 我正在使用以下代码来设置相同的内容。
final GestureDetector gestureDetector = (new GestureDetector(new GestureDetector.SimpleOnGestureListener() {
public void onLongPress(MotionEvent e) {
Log.e("test", "Long press detected");
}
}));
public boolean onTouchEvent(MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
问题在于所有手势是否是单击,双击onLongPress被调用。
我可以通过实现onDown()方法来获取代码,但是为什么在没有实现时它不起作用?只有当手势是onLongPress时,才应该调用onLongPress()吗?
答案 0 :(得分:0)
为什么使用GestureDetector进行longClick?如果你只需要这个Gesture,那么只需为视图设置一个LongClickListener。 http://developer.android.com/reference/android/view/View.html#setOnLongClickListener(android.view.View.OnLongClickListener)
如果您仍想实现GestureDetector,请按照以下示例操作: https://developer.android.com/training/gestures/detector.html 从快速看看,您似乎以不同的方式实现了触摸,这就是它在示例中的完成方式:
@Override
public boolean onTouchEvent(MotionEvent event){
this.mDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
答案 1 :(得分:0)