【发布时间】:2022-01-13 07:49:01
【问题描述】:
我想在我的按钮被点击一次时显示一些吐司,而在我的按钮被点击两次时显示其他吐司。是否有任何内置库或者我需要实现自定义逻辑?
【问题讨论】:
-
GestureDetector 确实支持双击。虽然在按钮上使用它只是为了双击有点过分,而且不一定更简单,因为它需要覆盖触摸事件。 Implementing your own logic 不会很难。
我想在我的按钮被点击一次时显示一些吐司,而在我的按钮被点击两次时显示其他吐司。是否有任何内置库或者我需要实现自定义逻辑?
【问题讨论】:
您可以使用手势检测器来检测双击。
final GestureDetector mDetector = new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener {
@Override
public boolean onDown(MotionEvent e) {
return true;
}
@Override
public boolean onDoubleTap(MotionEvent e) {
return true;
}
});
有关更多详细信息,您可以查看this 文档。
【讨论】:
@TaranmeetSingh 给出的答案是绝对正确的,但有更好的解决方案。你可以使用this库来做。
添加这个库 -> implementation 'com.github.pedromassango:doubleClick:CURRENT-VERSION'(上面给出了版本)。
您可以使用DoubleClickListener 而不是为 onClickListener 使用 onClickListenerObject,查看下面的示例
Button btn = new Button(this);
btn.setOnClickListener( new DoubleClick(new DoubleClickListener() {
@Override
public void onSingleClick(View view) {
// Single tap here.
}
@Override
public void onDoubleClick(View view) {
// Double tap here.
}
});
【讨论】: