Wie kann ich alle Berührungsereignisse für alle untergeordneten Elemente einer ViewGroup deaktivieren?

8

Ich habe einen FrameLayout -Container, der viele Dinge enthält (einschließlich ScrollView , WebView , ViewPager ...).

Ich möchte das onClick-Ereignis für diesen Container auslösen können, aber es scheint, dass einige von ScrollView , WebView und ViewPager das Berührungsereignis abfangen, da das onClick-Ereignis nur ausgelöst wird, wenn ich klicke auf den Teilen des Behälters, die keine von ihnen haben ...

Wie kann ich alle Berührungsereignisse auf den untergeordneten Objekten des Containers deaktivieren, um OnClick überall dort auslösen zu können?

UPDATE

Die Idee ist, etwas wie den Aufgabenmanager in Android 3.2 zu haben, d. h. wo der aktuell sichtbare Bildschirm der App als reduziertes Symbol angezeigt wird, auf das geklickt werden kann.

Danke

    
jul 23.04.2012, 12:54
quelle

2 Antworten

15

Vielleicht habe ich etwas falsch verstanden, aber ich denke, die Antwort auf Ihre Frage ist sehr einfach: Wenn Sie keine der Berührungsereignisse an die Kinder senden möchten, müssen Sie einfach ViewGroup.onInterceptTouchEvent (MotionEvent ev) API-Referenz wie folgt:

%Vor%

Laut der Android-Dokumentation bedeutet dies, dass Ihre ViewGroup alle Berührungsereignisse abfangen und nicht an die Kinder senden wird. Alle werden an die Methode ViewGroup.onTouchEvent(MotionEvent ev) Ihrer ViewGroup weitergeleitet.

    
rus1f1kat0R 19.10.2012, 15:54
quelle
0

Sie könnten sie folgendermaßen deaktivieren:

%Vor%     
Rafael T 23.04.2012 13:13
quelle