Учитывая пример на изображении ниже,
Я ищу решение для передачи событий касания с холста View на Viewpager. Это необходимо для одновременного применения одинакового масштаба к обоим представлениям.
Вот техническое описание того, что происходит,
(Давайте рассмотрим представление как A, B и C)
А. Родительский вид
Б. Посмотреть
С. Просмотр пейджера
Перед вызовом dispatchTouchEvent() для дочерних элементов (B и C) A.dispatchTouchEvent() сначала вызовет A.onInterceptTouchEvent(), чтобы узнать, заинтересована ли группа просмотра в перехвате события.
Таким образом, если A.onTouchEvent() возвращает false, происходит возврат к B.onTouchEvent(). Если он возвращает false, он возвращается к C.onTouchEvent(), и диспетчеризация продолжается как обычно.
И после возврата true
ACTION_CANCEL будет отправлено всем дочерним элементам.
Все последующие события жестов (до ACTION_UP/ACTION_CANCEL) будут использоваться прослушивателями событий (OnTouchListener.onTouch()), если они определены, иначе обработчик события A.onTouchEvent() на уровне A.
На данный момент я могу передать события от родительского к дочерним представлениям, но не могу позволить 2 дочерним представлениям B. & C обрабатывают события вместе (применяя одинаковое масштабирование к обоим представлениям).
Есть ли способ передать события касания из родительского представления в дочернее, чтобы они могли обрабатывать события одновременно?
Вот моя настройка макета,
<RelativeLayout
android:id="@+id/layoutParent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFFFF">
<com.androidapp.NonSwipeableViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="@color/transparent" />
<com.androidapp.DrawingView
android:id="@+id/drawing"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/transparent" />
</RelativeLayout>