Touch-event-handling auf android-Eltern-und Kind-benutzerdefinierte Ansichten
heute habe ich ein problem mit touch-event-handling auf android-benutzerdefinierte Ansichten.In diesem Fall habe ich erstellt übergeordneten Ansicht aufrufen weekview und chiled nennen weekdayview.ich möchte implementieren touch-event wie singleTap,LongPress in der untergeordneten Ansicht nur und wenn ich wische auf Eltern-oder Kind-ich will Blättern übergeordneten Ansicht.wenn ich implementieren touch-event in beiden anzeigen, es Dosis nicht funktionieren.
kann mir jemand helfen auf diese.Es ist wirklich hilfreich für mich.
Danke
- Ich denke, wenn das touch-Ereignis wird auf der untergeordneten Ansicht, der übergeordneten Ansicht werden nie benachrichtigt. Also besser GestureDetector, in Ihrer Untergeordneten Ansicht, onTouchEvent, versenden Sie die Ereignis-Geste, und Sie handeln auf übergeordneten Ansicht.
- Ich benutze GestureDetector in beiden Sicht-scrolling-Teil erfolgt auf dem übergeordneten Ansicht und es ist OK.aber ich möchte einige Sache auf der untergeordneten Ansicht.Ich return false in onDown-Methode in der untergeordneten Ansicht.dann Blättern Elternteil arbeitet und touch-event auf der untergeordneten Ansicht Dosis nicht funktionieren
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist peso-code (kein echtes android-java), Ihnen zu zeigen, das Konzept zu verwenden GestureDetector, können Sie sich mit allen Ereignissen aus, die Ihr Kind anzeigen in Ihrer übergeordneten Ansicht. Als ich getestet habe, auf meinem android-Handy, das onTouchEvent in ChildView nicht erkennen ACTION_UP sehr gut, so dass auch Sie wischen Sie mit Ihrem Kind Ansehen, mal Seitensprung nicht funktioniert (es hängt davon ab, ACTION_UP).
Also, wenn Sie wollen, mehr zu schreiben, genaue streichen Sie auf Ihr Kind Anzeigen, besser schreiben Sie Ihre owen Geste Erkennen-Klasse, und in Ihrem ChildView, können Sie dies tun -
Stellen Sie Ihre swipe-Geschwindigkeit (zu erkennen Benutzer die Absicht zu streichen), und überschreiben der onTouchEvent() in der untergeordneten Ansicht.
Hier, rufen Sie super.onTouchEvent() und return, die Anrufe Ihrer Eltern Ansicht. Die Ereignisse behandeln, die in der übergeordneten Ansicht.