Während questions wurden in der Vergangenheit gefragt, sie scheinen nicht wirklich beantwortet worden zu sein, was auf Verwirrung bezüglich der Frage zurückzuführen sein könnte.
Einfach gesagt, würde ich gerne feststellen, welche Ansicht eingegeben wird, während Ihr Finger über den Bildschirm gleitet. Das beste Beispiel in Aktion ist die Soft-Tastatur auf jedem Android-Handy. Wenn Sie eine beliebige Taste drücken, wird es als Popup angezeigt, um Ihnen zu sagen, welcher Buchstabe sich unter Ihrem Finger befindet. Wenn Sie nun mit einer einzigen Geste Ihren Finger über die Tastatur bewegen, erscheinen die verschiedenen Buchstaben, wenn Sie sich über die verschiedenen Buchstaben des Alphabets bewegen.
Welche Listener werden für diese Art von Verhalten verwendet? Ich habe OnTouchListeners ausprobiert, aber sie scheinen nur dann zu sein, wenn Sie den Knopf "berühren", anstatt ihn "zu berühren"
%Vor% OnFocusChangeListener
hilft auch nicht.
BEARBEITEN:
Ich sah Tastatur. Ich denke, es ist nur eine Ansicht und Koordinaten von jedem Buchstaben bekannt. So können Sie leicht berechnen, welchen Buchstaben der Benutzer durchläuft
UND JETZT DIE ANTWORT:
Ich bin mir nicht sicher, aber wahrscheinlich hilft dieser Code Ihrem.
Es ist so weit weg, ich habe es für mich geschrieben. Aber die Idee folgt.
Wenn ich mich recht erinnere, gibt es keinen Gestendetektor für Ansichten, aber Sie können den Touchlistener der Ansicht mit geturelistener Ihrer Aktivität kombinieren.
Sobald Sie Ihre Ansicht berührt haben, haben Sie
%Vor%Es ist ziemlich einfach, das manuell zu handhaben.
Wenn Sie Ihr übergeordnetes Layout als onTouchListener
verwenden (im folgenden Beispiel I extend
a RelativeLayout
), können Sie mithilfe einer einfachen Koordinate nach Kollisionen zwischen einem MotionEvent
und dem untergeordneten View
s suchen Vergleichslogik:
Aufrufe an getCollisionWith
geben View
Referenzen zurück, die beliebig manipuliert werden können.