Biorąc pod uwagę przykład z poniższego obrazu,jednoczesnych zdarzeń dotykowych przeładunku na wielu widoków w Androidzie
szukam rozwiązania przekazać zdarzeń dotykowych z płótna View do Viewpager. Jest to konieczne do równoczesnego stosowania tego samego zoomu w obu widokach.
Oto opis techniczny, co się dzieje,
(Pozwala rozważyć pogląd jako , B & C)
A. nadrzędna Zobacz
B. Wyświetl
C. Zobacz Pager
Przed dispatchTouchEvent() nazywa na dzieci (B & C), The A.dispatchTouchEvent() najpierw wywołuje A.onInterceptTouchEvent (), aby sprawdzić, czy grupa widoków jest zainteresowana przechwytywaniem zdarzenia.
Więc jeśli A.onTouchEvent() powraca fałszywy, to wraca do B.onTouchEvent(). Jeśli to zwróci false, to powróci do C.onTouchEvent(), a wysyłka będzie kontynuowana jak zwykle.
A po powrocie prawdziwą,
ACTION_CANCEL będą wysyłane do wszystkich dzieci.
Wszystkie późniejsze wydarzenia gest (do ACTION_UP/ACTION_CANCEL) będą spożywane przez słuchaczy zdarzeń (OnTouchListener.onTouch()), jeśli zdefiniowane, innego obsługi zdarzeń A.onTouchEvent() na poziomie A.
W tym momencie mogę przekazać zdarzenia z rodzicem do poglądów dziecka, ale nie mogę pozwolić widoku 2 dziecko b. & C poradzić sobie ze zdarzeniami razem (stosując taki sam zoom w obu widokach).
Czy istnieje sposób przekazywania zdarzeń dotykowych z widoku rodzica na dziecko, aby można było przetwarzać zdarzenia jednocześnie?
Oto mój setup układ,
<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>
Jak płótno jest umieszczony pod kontrolą viewpager? Czy pojawia się jako wyskakujące okienko lub w inny sposób? – ridoy
Obszar roboczy i widok strony znajduje się w 2 osobnych widokach. Sprawdź mój kod układu, aby się lepiej przyjrzeć[email protected] –
Tak więc twój DrawingView przechwytuje NonSwipeableViewPager (zgodnie z twoim kodem układu), nieprawdaż? – ridoy