Хорошо, я постараюсь предоставить здесь больше информации, чем в моем первом комментарии. Итак, прежде всего, система не должна допускать такое поведение, как описано в этой теме: https://groups.google.com/forum/#!topic/android-platform/d6Kt1DhCAtw
Это, как говорится, я наткнулся на это вопросы, когда желающих автоматизировать тестирование пользовательского интерфейса на моих приложений, особенно для обработки изображений , где я хотел имитировать пальцы на экране.
Вот фрагмент, который вы могли бы потенциально применить к Activity B
:
Шаг 1: Пропустите X
и Y
координаты последнего MotionEvent
от Activity A
к Activity B
Шаг 2: Получить эти значения в Activity B
и затем примените:
private void continueScrolling(int posX, int posY) {
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis();
MotionEvent.PointerCoords[] pointerCoords = new MotionEvent.PointerCoords[1];
MotionEvent.PointerCoords pc1 = new MotionEvent.PointerCoords();
pc1.x = posX;
pc1.y = posY;
pc1.pressure = 1;
pc1.size = 1;
pointerCoords[0] = pc1;
MotionEvent.PointerProperties[] pointerProperties = new MotionEvent.PointerProperties[1];
MotionEvent.PointerProperties pp1 = new MotionEvent.PointerProperties();
pp1.id = 0;
pp1.toolType = MotionEvent.TOOL_TYPE_FINGER;
pointerProperties[0] = pp1;
MotionEvent event;
// send the initial touches (this seems to be to "wake up" the view, you might not need it in a non-testing context though)
event = MotionEvent.obtain(downTime, eventTime,
MotionEvent.ACTION_DOWN, 1, pointerProperties, pointerCoords,
0, 0, // metaState, buttonState
1, // x precision
1, // y precision
0, 0, // deviceId, edgeFlags
InputDevice.SOURCE_TOUCHSCREEN, 0); // source, flags
theViewYouWantTomove.dispatchGenericMotionEvent(event);
event = MotionEvent.obtain(downTime, eventTime,
MotionEvent.ACTION_DOWN,
1, pointerProperties, pointerCoords, 0, 0, 1, 1, 0, 0,
InputDevice.SOURCE_TOUCHSCREEN, 0);
theViewYouWantTomove.dispatchGenericMotionEvent(event);
}
Не можете ли вы передать последнюю информацию о MotionEvent от A до B, а затем смоделировать ' ACTION_DOWN' после запуска B? – NSimon
@NicolasSimon Я думаю, что это правильное направление, и я изучал его, пока безуспешно. – EyesClear
См. Мой ответ ниже – NSimon