Ссылка
Indem ich diesem guten Führer folge, kann ich einen Chathead machen und auch das Berührungsereignis erkennen.
Wenn ich jedoch den Chathead mit dem ersten Finger berühre und versuche, einen anderen Bereich (außerhalb) des Chatkopfs mit dem zweiten Finger zu berühren, ist die zweite Berührung nicht möglich.
(Der Bereich außerhalb kann der Startbildschirm oder eine andere App, Aktivität) sein
Ähnlich, wenn ich zuerst die Außenseite berühre und versuche, den Steuerkopf mit dem zweiten Finger zu berühren, ist das nicht möglich.
Ich habe die ähnliche Interaktion mit Facebook Messenger Chat versucht und es ist das gleiche.
Meine Frage ist: Ist es möglich, die zweite Berührung zu unterstützen?
vielleicht mit Versand Touch-Event? aber afaik versand ist nur für aktivitäten.
Der Chathead verwendet Service und Fenster.
Jede Hilfe wäre sehr willkommen!
Ja, es ist möglich, die folgende Problemumgehung zu verwenden.
OnTouchEvent()
. Damit die anderen Apps das Berührungsereignis behandeln können, kann die transparente Ansicht nur aktiviert werden, wenn der Benutzer Ihren Chathead bereits berührt. So können Sie sicherstellen, dass der Benutzer eine Geste mit Ihrem Chathead plant.
> Dies ist nicht möglich, wenn Layouts manuell als Systemüberlagerung zum WindowManager
hinzugefügt werden, wenn die zugrunde liegende Ansicht aus einer völlig anderen Hierarchie stammt.
Sobald Sie ein Berührungsereignis in der ersten Ansicht gestartet haben, werden alle nachfolgenden Berührungsereignisse an dieselbe Ansichtshierarchie gesendet, bis alle MotionEvent
s beendet sind (dh ACTION_UP
oder ACTION_CANCEL
ist aufgetreten).
Grundsätzlich werden alle äußeren Berührungen, sobald Sie mit einer Ansichtshierarchie interagieren, als Berührungen außerhalb der aktuellen Hierarchie interpretiert und ignorieren alle darunterliegenden Darstellungsherarchien, die die gleiche Bildschirmposition einnehmen können oder nicht.
Tags und Links android