我正在创建一个需要检测点击次数的应用(我为此使用了onSingleTapUp
)并保持(我使用onShowPress
)。问题是有时候我点击的按钮首先被注册为保留,然后点击一下。有什么方法可以解决这个问题吗?
P.S我不是在寻找长按,所以我没有使用OnLongClickListener
P.S.S我尝试使用OnClickListener
进行点击,使用SimpleOnGestureListener
进行暂停,但手势未被检测到
相关代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ground);
gl = new GestureDetector(this,new MyGl());
}
class MyGl extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onDown(MotionEvent event) {
return true;
}
@Override
public boolean onSingleTapUp(MotionEvent event) {
Log.i("motion","single");
return true;
}
@Override
public void onShowPress(MotionEvent e){
Log.i("motion","long");
}
}
@Override
public boolean onTouchEvent(MotionEvent e) {
return gl.onTouchEvent(e);
}
我希望只看到"单身"记录但是"长"首先记录然后"单个"。在一个中检测到两个手势。
答案 0 :(得分:0)
类似的声音就像API不打算直接使用(没有约束)onSingleTapUp vs onDown。您应该考虑阅读文档@ https://developer.android.com/reference/android/view/GestureDetector.SimpleOnGestureListener.html#onDown(android.view.MotionEvent),它清楚地说:
每次发生的事件都会立即触发
您需要根据特定规格对其进行过滤。阅读文档将解释原因。
也许您应该考虑自己处理TouchEvent并过滤触摸逻辑以寻找您正在寻找的东西。