2016-05-04 12 views
0

Ich versuche Drag-and-Drop-Sortierung von Zeilen in meiner Titan-Legierung-App mit JavaScript für Android, iOS und Windows-Plattformen zu implementieren. Bis jetzt kann ich eine Ansicht per Berührungsereignisse ziehen und ablegen. Aber ich habe schon einige Probleme wie Animation nicht glatt usw. Ich muss auch einen Algorithmus zum Sortieren der Zeilen erstellen. Ich habe das Appcelerator-Archiv bereits durchsucht, konnte dort keinen guten Ansatz finden.Ziehen und Ablegen Sortieren von Zeilen in Titanlegierung App

Kann mir jemand bei der Implementierung helfen? Gibt es Ressourcen, die mir dabei helfen können?

Antwort

2

Es gibt einige Module, die Sie mit Drag & Drop kann helfen:

z.B. https://github.com/viezel/TiDraggable und https://github.com/animecyc/TiDraggable

Dies sind Gabeln von https://github.com/pec1985/TiDraggable/network also überprüfen Sie diese Seite, um zu sehen, ob es neuere Gabeln gibt.

Über welche Animation sprechen Sie, wenn Sie "nicht glatt" sagen? Dies hängt vom Inhalt der Zeile ab, die Sie ziehen. Wenn es zu viele Objekte zum Verschieben gibt, wäre es besser, ein "Geister" -Element zu erstellen (nur eine Ansicht mit einem farbigen Hintergrund) und dieses zu verschieben. Sobald Sie loslassen, entfernen Sie Ihren ursprünglichen Container erneut.

Über die Sortierung:

Sie haben es selbst zu implementieren. Aber im Grunde wissen Sie, welches Element Sie ziehen (geben Sie jedem Element eine ID) und finden Sie dann heraus, an welche Position Sie das Element ziehen (durch Y-Position oder überprüfen Sie das Element, das unter Ihrem Finger ist). Dann bewege deinen Gegenstand einfach dorthin. Oder ordnen Sie eine JSON-Datei neu an und weisen Sie sie nach dem Ziehen der Tabelle/Listenansicht zu.

Listview auf iOS

Wenn Sie eine Listenansicht auf iOS verwenden, können Sie „canMove“ verwenden (https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.ListItem-property-canMove)

Gibt an, ob das Element durch einen Benutzer innerhalb der Listenansicht neu geordnet werden initiierte Aktion.

Aber es ist nur für iOS verfügbar. Also für eine Cross-Plattform-Art müssen Sie Ihre eigene Sortierung erstellen.

+0

Ja, ich wollte https://github.com/animecyc/TiDraggable verwenden, konnte aber nicht, weil wir Drag and Drop auch unter Windows implementiert haben. Ich habe damit begonnen, mit Touch-Events daran zu arbeiten. – learner123