2016-10-07 4 views
0

Ich habe ein NativeScript-Projekt, das eine ListView enthält. Ich benutzte seine Veranstaltung „onItemTap“ und dies ist die Funktion, die ich schrieb:NativeScript-Animation wird nur einmal ausgelöst

onItemTap(args){ 
     let clicked = args.view.bindingContext; 
     let fav = this.page.getViewById("star-"+clicked.id); 
     fav.animate({ 
      rotate: 360, 
      duration: 1000 
     }); 

    } 

Im Grunde bin ich das Abrufen der Artikel, den ich geklickt haben, innerhalb der Artikel ein Etikett ist, die die ID hat "star-N" [N ist die intex von das Objekt] und ich animiere es. Es funktioniert gut, das Problem ist, dass es nur einmal funktioniert! Ab dem zweiten Tipp animiert es nicht mehr. Die Konsole gibt keine Fehler zurück. Ich benutze mein Android-Gerät, um es zu debuggen.

Irgendeine Idee? Vielen Dank!

Antwort

1

Anscheinend nach der Drehung wird die Eigenschaft "rotieren" des Elements nicht auf seinen Anfangswert zurückgesetzt. Das bedeutet, dass Ihre Eigenschaft rotieren beim ersten Antippen von 0 => 360 und dann beim zweiten Antippen von 360 => 360, so dass keine Animation stattfindet.

Nicht sicher, ob es wirklich so sein soll, aber man kann immer manuell dreht Eigenschaft auf 0 gesetzt, sobald die Animation erfolgt:

onItemTap(args) { 
    let clicked = args.view.bindingContext; 
    let fav = this.page.getViewById("star-"+clicked.id); 
    fav.animate({ 
     rotate: 360, 
     duration: 1000 
    }).then(() => fav.rotate = 0); 
} 
+0

Heilige Scheiße, dachte ich, dass das „belebte“ Verfahren betroffen das Element nur vorübergehend! Ich hätte nicht gedacht, dass die Eigenschaft "rotieren" auf 360 gesetzt werden könnte! Vielen Dank! Können Sie mir sagen, wo die Eigenschaften der Ansicht in den NativeScript-Dokumenten aufgeführt sind? –

Verwandte Themen