2016-03-24 2 views
1

Ich versuche, ein Element von einem Repeater in NativeScript zu entfernen, indem Sie es einfach zusammenklappen. Ich kann die Höhe des Gegenstandes gut skalieren, aber der Platz bleibt erhalten, so dass der Repeater nach dem Entfernen des Gegenstands aufspringt. Ich möchte, dass die restlichen Elemente im Repeater nach oben verschoben werden, während das zu entfernende Objekt minimiert ist.Animieren Repeater Item Höhe In NativeScript

Hier ist das Verhalten, das ich jetzt habe. Beachten Sie, dass der Rest der Elemente nicht verschoben wird, bis das Element, das gelöscht wird, die Animation beendet hat.

enter image description here

Hier ist, was ich bisher für die Animation Code habe:

let remove = (args: EventData) => { 
    let view = <View>args.object; 
    let item = view.parent.parent; 

    let todo = view.bindingContext; 

    item.originY = 0; 

    item.animate({ 
     scale: { x: 1, y: 0 }, 
     curve: "easeIn", 
     duration: 500 
    }) 
    .then(() => { 
     item.visibility = 'collapsed'; 
     viewModel.remove(todo); 
    }); 
} 

Antwort

0

Sind Sie in der Lage der Repeater Ansicht selbst bis zur gleichen Zeit mit Multi-View-Animationen zu animieren?

http://docs.nativescript.org/ApiReference/ui/animation/HOW-TO#animating-multiple-views-simultaneously

+0

Ja, aber das Problem ist, dass Sie don Ich weiß nicht, welches Element im Repeater gelöscht wird. Wenn Sie Objekte haben, die sich außerhalb der Struktur des Repeaters befinden, die ebenfalls nach oben verschoben werden müssen, müssen Sie das gesamte übergeordnete Element auswählen, um dies zu tun. Es wird wirklich sehr schnell eklig. NativeScript bietet auch keinen Selektor an, der sagt "Hol mir alle Geschwister dieses Gegenstandes, die nach diesem Gegenstand kommen". –

0

Was zerren den Repeater und ersetzen Sie es mit dem neuen (kostenlos) RadListView, die diese standardmäßig hinzugefügt wurde, sehr glatt

http://docs.telerik.com/devtools/nativescript-ui/Controls/ListView/item-animations

+0

Das ist eine gute Lösung. Wenn ich keinen für die Bestandslistenansicht finden kann, kann ich stattdessen mit dieser Option gehen. Immer noch auf der Suche nach der technischen Antwort ... :) –