PopupWindow reagiert nicht auf Drag & Drop-Ereignisse

8

Ich habe in meiner Anwendung ein Menüsymbol. Wenn ich etwas drag and drop trage, erscheint ein Popup. Ich muss meinen Drag and Drop auf dieses PopupWindow erweitern.

Ich mache das wie folgt.

Erstellt ein PopupWindow wie gezeigt

%Vor%

Setzen Sie den dragListener wie gezeigt

%Vor%

Das folgende Video zeigt, was ich erreichen möchte.

Aber die PopupView reagiert nicht auf Drag-Events. Ich habe auch versucht% ce_de% zu benutzen, aber es hat auch nicht geholfen. Jede Hilfe wird geschätzt.

Vielen Dank im Voraus.

    
heyjii 03.05.2017, 10:16
quelle

1 Antwort

2
___ tag123android ___ Android ist das mobile Betriebssystem von Google, das zum Programmieren oder Entwickeln von digitalen Geräten (Smartphones, Tablets, Automobile, Fernseher, Wear, Glass, IoT) verwendet wird. Verwenden Sie für Themen rund um Android Android-spezifische Tags wie android-intent, nicht intent, android-activity, nicht activity, android-adapter, nicht adapter usw. Bei anderen Fragen als der Entwicklung oder Programmierung, aber im Zusammenhang mit Android Framework, verwenden Sie Der Link: https://android.stackexchange.com. ___ tag123draganddrop ___ Drag-and-drop ist in Computer-Benutzeroberflächen die Aktion (oder Unterstützung für die Aktion), ein virtuelles Objekt durch "Greifen" und Ziehen an einen anderen Ort oder auf ein anderes virtuelles Objekt auszuwählen. ___ tag123androidpopupwindow ___ Das PopupWindow ist ein AndroidView-Container, der über der aktuellen Acticity angezeigt wird, um eine Ansicht anzuzeigen. ___ qstnhdr ___ PopupWindow reagiert nicht auf Drag & Drop-Ereignisse ___ antwort43841291 ___

PopupWindow wird das View auf% hinzufügen co_de% instance und nicht zum aktuellen Layout. Während in den Dokumenten angegeben ist:

  

Das System sendet ein Drag-Ereignis mit dem Aktionstyp ACTION_DRAG_STARTED an die Drag-Ereignis-Listener für alle View-Objekte im aktuellen Layout .

Achten Sie auf fett gedruckte " im aktuellen Layout ". Die Inhaltsansicht von WindowManager wird nicht als im aktuellen Layout betrachtet angesehen. Aus diesem Grund werden diese Ereignisse nicht an die Inhaltsansicht von PopupWindow gesendet.

Als Workaround können Sie ein PopupWindow mit denselben Koordinaten zum aktuellen Layout hinzufügen, das als Geist von View fungiert, und auf Drag-Events für dieses PopupWindow lauschen.

Implementierung

Fügen Sie dem Layout die Geisteransicht hinzu:

%Vor%

Richten Sie die Geisteransicht von View :

ein %Vor%

Wir möchten, dass nicht Geisteransicht sichtbar ist. Deshalb setzen wir sie auf null.

Dann haben wir die onCreate() mit Ankeransicht eingerichtet:

%Vor%

Wir müssen PopupWindow ausführen, sonst wird setTouchable(false) Berührungsereignisse verbrauchen. Außerdem legen wir die Position der Geisteransicht genau an der Position fest, an der PopupWindow angezeigt wird.

Dann zeigen wir PopupWindow bei geeigneten Drag-Events an und weisen sie ab:

%Vor%

Ergebnis

Eine Pull-Anforderung wird in Ihrem Repository mit den oben genannten Funktionen geöffnet.

    
___ qstntxt ___

Ich habe in meiner Anwendung ein Menüsymbol. Wenn ich etwas drag and drop trage, erscheint ein Popup. Ich muss meinen Drag and Drop auf dieses PopupWindow erweitern.

Ich mache das wie folgt.

Erstellt ein PopupWindow wie gezeigt

%Vor%

Setzen Sie den dragListener wie gezeigt

%Vor%

Das folgende Video zeigt, was ich erreichen möchte.

Aber die PopupView reagiert nicht auf Drag-Events. Ich habe auch versucht% ce_de% zu benutzen, aber es hat auch nicht geholfen. Jede Hilfe wird geschätzt.

Vielen Dank im Voraus.

    
___
azizbekian 08.05.2017, 06:41
quelle