У меня есть две настраиваемые группы просмотра, которые реализуют onTouchListener для motionevent.Android MotionEvent: переключение между видами
Я использую framelayout, чтобы показать им обоим. Вторая группа просмотра меньше по размеру, чем первая. Итак, первый в фоновом режиме, а второй - на переднем плане.
Я хочу перетащить элемент для второй группы/группы просмотра в группу просмотра.
Проблема: При перетаскивании элемента на фоне ViewGroup (i.e mAwesomePager)
, я хочу ACTION_UP
, чтобы срабатывать на втором ViewGroup (меньший) и ACTION_MOVE
, чтобы срабатывать на первом ViewGroup, поэтому в основном touchEvent
передается от меньшего ViewGroup к более крупный в фоновом режиме и 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' завершает события касания для обоих представлений. –
Предполагая, что вы продолжаете возвращаться, создается ли созданный motionEvent, отправляемый в фоновый режим? –