У меня есть две настраиваемые группы просмотра, которые реализуют onTouchListener для события движения.
Я использую макет кадра, чтобы показать их обоих. Вторая группа просмотра меньше по размеру, чем первая. Таким образом, первый находится на заднем плане, а второй - на переднем.
Я хочу перетащить элемент для второй/меньшей группы просмотра в фоновую группу просмотра.
Проблема: при перетаскивании элемента в фоновую группу просмотра (i.e mAwesomePager)
я хочу, чтобы ACTION_UP
запускался во второй группе просмотра (меньшей) и ACTION_MOVE
запускался в первой группе просмотра, поэтому в основном touchEvent
переносится из меньшей группы просмотра в большую в фон и MotionEvent
продолжаются без того, чтобы пользователь убирал палец с экрана, а затем возвращал его обратно.
Вот часть полезного кода:
@Override
public boolean onTouchEvent(MotionEvent ev) {
if (mRectOut == true) {
ev.setAction(MotionEvent.ACTION_UP);
mFrame.bringChildToFront(mAwesomePager);
//mAwesomePager.setClickable(true);
// Obtain MotionEvent object
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis() + 100;
// List of meta states found here: developer.android.com/reference/android/view/KeyEvent.html#getMetaState()
int metaState = 0;
MotionEvent motionEvent = MotionEvent.obtain(
downTime,
eventTime,
MotionEvent.ACTION_DOWN,
ev.getX(),
ev.getY(),
metaState
);
mAwesomePager.getChildAt(mAwesomePager.mLastDragged).dispatchTouchEvent(motionEvent);
}
//some more code here
}
Я пытаюсь имитировать отключение касания в представлении переднего плана с помощью этого ev.setAction(MotionEvent.ACTION_UP);
, теперь я хочу, чтобы фоновое представление взяло под контроль касание, пока касание удерживает перетаскиваемое изображение.
ev.setAction(MotionEvent.ACTION_UP);
, теперь я хочу, чтобы фоновое представление контролировало прикосновение, пока прикосновение удерживает перетаскиваемое изображение.return false
завершает сенсорные события для обоих представлений. 14.10.2015