Ich benutze Navigationsschublade in meiner App, die einige Fragmente enthält, genau wie im unteren Bild.
Jedes Fragment enthält einen anderen ViewPager, bei dem es sich um einen ImageSlider handelt. Darunter befindet sich eine Listview und oben verwende ich SwipeRefreshLayout. Mein Problem ist, dass der Image Slider gut funktioniert auf Geräten mit Android Version 3.0 oder höher, aber das Wischen nach links oder rechts funktioniert nicht auf Geräten 2.3 und niedriger, sondern ruft den Swipe des Parent ViewPagers auf, der das Fragment navigiert. Ich verwende die Version 4-Bibliothek für diesen Zweck, um Geräte unter 3.0 zu unterstützen. Alle Funktionen funktionieren ziemlich gut auf 2.3 Geräten außer diesem. Ich habe es gegooglet, aber ich habe nirgends Hilfe gefunden. Um es zu scrollen, was ich tun soll, wird jede Idee / Hilfe sehr geschätzt.
Sie können dieses ViewPager
als Ihr Elternteil ViewPager
verwenden. Dies erlaubt dem Kind ViewPager
zu scrollen.
Die Android-Entwickler-Website hat eine schöne Erklärung für die Behandlung von Berührungsereignissen in Viewgroup
. Sie können es hier beziehen: Ссылка
Hoffe es hilft !!
In älteren Versionen von Android requestDisallowInterceptTouchEvent funktioniert nicht so gut. Die Lösung besteht darin, den Pager zu erweitern und das onInterceptTouchEvent zu überschreiben und eine Liste von untergeordneten Elementen zu speichern. Wenn onInterceptTouchEvent aufgerufen wird, können Sie dann die Liste der scrollbaren Kinder durchlaufen, deren Treffer erhalten und sehen, ob sich das Berührungsereignis innerhalb des Treffers befindet. Wenn dies der Fall ist, können Sie einfach false zurückgeben, um nicht damit umgehen zu können und das Kind nehmen zu lassen.
In etwa so:
%Vor%