Android ChatHead beschränkt die Berührung auf sich selbst, ABER ich brauche den zweiten Finger, der gleichzeitig den Bereich außerhalb des Chatkopfs berührt.

8

Ссылка 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!

    
tcboy88 05.09.2015, 16:35
quelle

2 Antworten

2

Ja, es ist möglich, die folgende Problemumgehung zu verwenden.

  • Halten Sie ein transparentes Layout rund um Ihren Chathead bereit.
  • Dies transparentes Layout fängt die Berührung ab und Sie können das Notwendige tun Handhabung.
  • Sie können dieses Touch-Ereignis dann an die Hierarchie / andere Apps weitergeben, indem Sie false von OnTouchEvent() .
  • zurückgeben

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.

>     
rupesh jain 14.09.2015 16:46
quelle
1

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.

    
Kane O'Riley 14.09.2015 07:35
quelle

Tags und Links