У меня есть настраиваемый вид с растровыми изображениями на нем, который пользователь может перетаскивать .
Я хочу сделать так, чтобы при долгом щелчке по одному из них я мог вывести контекстное меню с такими параметрами, как положение сброса и т. Д.
В пользовательском представлении я добавляю свой OnLongClickListener:
this.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// show context menu..
return true;
}
});
И переопределяю onTouchEvent в выглядит примерно так:
public boolean onTouchEvent(MotionEvent event) {
handleDrag(event);
super.onTouchEvent(event);
return true;
}
Функция handleDrag находит, какой объект был нажат, и обрабатывает его положение.
Моя проблема в том, что когда я начинаю перетаскивать изображение, также срабатывает OnLongClickListener. Я не уверен, как лучше это обойти.
Я попытался добавить порог для handleDrag, чтобы он возвращал false, если пользователь касается земли, но не пытается перетащить, но мне все еще трудно получить правильный обработчик запущен.
Может ли кто-нибудь предложить способ пропустить OnLongClickListener при перетаскивании?