双击旋转器显示2个菜单。如何禁用双击?
尝试添加TouchListeners
,如下所示
private static final int CLICK_DELAY = 500;
private long lastMenuClickTime = 0;
actionsSpinner.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (SystemClock.elapsedRealtime() - lastMenuClickTime > CLICK_DELAY) {
lastMenuClickTime = SystemClock.elapsedRealtime();
return false;
}
}
return true;
}
});
但这会增加执行点击操作的延迟,主要问题是在 CLICK_DELAY 无法正常工作后首先点击。
答案 0 :(得分:1)
这是你可以做的
public static void disableTouch(final View v, long timeInMiliSec) {
v.setEnabled(false);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
v.setEnabled(true);
}
}, timeInMiliSec);
}
此功能禁用指定时间的视图
示例:强>
actionsSpinner.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
disableTouch(actionsSpinner, CLICK_DELAY)
//do your other stuff here
return false;
}
return true;
}
});