Я пробую эту дикую идею, поставив пользовательский элемент управления в элементы определенного вида списка. Управление только «активировано», если пользователь прикасается к определенной точке запуска, а затем может «перетаскивать».Захват событий касания в элементе списка android и предотвращение прокрутки
Мой вопрос: что я могу сделать в onTouchEvent (...), чтобы предотвратить получение списка и прокрутку списка. Прямо сейчас я могу прикоснуться к элементу управления и получить контроль над ним, но если я слишком сильно перемещаю свой палец вверх или вниз, список просматривает и начинает прокрутку, тогда мое представление даже не получает событие ACTION_UP.
Вот мой текущий код onTouchEvent:
if (e.getAction() == MotionEvent.ACTION_DOWN) {
Log.d("SwipeView", "onTouchEvent - ACTION_DOWN" + e.getX() + " " + e.getY());
int midX = (int)(this.getWidth()/2);
int midY = (int)(this.getHeight()/2);
if (Math.abs(e.getX() - midX) < 100 &&
Math.abs(e.getY() - midY) < 100) {
Log.d("SwipeView", "HEY");
setDragActive(true);
}
this.invalidate();
return true;
} else if (e.getAction() == MotionEvent.ACTION_MOVE) {
_current[0] = e.getX();
_current[1] = e.getY();
this.invalidate();
return true;
} else if (e.getAction() == MotionEvent.ACTION_UP) {
_current[0] = 0;
_current[1] = 0;
setDragActive(false);
this.invalidate();
return true;
}
Я уверен, что это имеет какое-то отношение к иерархии событий в некотором роде.