У меня есть два действия A и B. Я хотел бы, чтобы событие MotionEvent.ACTION_DOWN с одним касанием было перехвачено в A, все еще удерживая нажатой, запустить B, а затем событие выпуска MotionEvent.ACTION_UP было перехвачено в B.
В A есть View v, который имеет OnTouchListener со следующим обратным вызовом:
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
startActivity(new Intent(A.this, B.class));
break;
case MotionEvent.ACTION_UP:
// not called
break;
}
// false doesn't work either
return true;
}
В B есть перекрывающийся View v2 (по сравнению с исходным v) с тем же типом OnTouchListener, но B "onTouch" не вызывается, когда начинается действие, если я не шевелю пальцем (восстановление событий касания).
Проще говоря, я делаю приложение, в котором новое действие будет появляться при удерживании на экране и завершаться, когда я отпускаю палец.
Нельзя ли передать состояние MotionEvent.ACTION_DOWNed из одного вида в другой? Или новое действие B очищает все текущие «слушатели касания экрана», доступные только для A, потому что оно было инициировано там?
Спасибо за любое объяснение того, как эти MotionEvents отправляются в действия и / или любое решение / взлом моей проблемы.