Ich habe die Methode in this question implementiert und die Animation auf Bildlauf sieht vollkommen in Ordnung. Die anfängliche Listenfüllungsanimation zeigt jedoch an, dass alle Objekte gleichzeitig auf dem Bildschirm angezeigt werden, und es sieht nur wie eine Verzögerung aus.RecyclerView Elemente animieren auf Liste füllen, aber die ersten Elemente alle gleichzeitig animieren und sieht nur aus wie eine Verzögerung
Während des Debuggens kann ich sehen, dass die Animationsmethode 7-mal aufgerufen wird, aber ich denke, es ist so schnell, dass alle versuchen, im Grunde zur gleichen Zeit zu laufen. Irgendwelche Ideen, was ich tun kann? Ich habe versucht, die Animation zu verzögern, aber ich blieb stecken, wie das geht. Ich habe diese Frage gestellt here. Vielen Dank für die Hilfe!
Edit: Ich kann den gleichen Code schreiben, die ich auf die andere Frage stellen:
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
//Normal OnBindViewHolder stuff
SetAnimation(vh.ItemView, position);
}
Und dann die SetAnimation Methode:
private void SetAnimation(View viewToAnimate, int position)
{
if (position > lastPosition)
{
var animation = AnimationUtils.LoadAnimation(_context, Resource.Animation.up_from_bottom);
//animation.SetAnimationListener(new CheckpointAnimationListener());
viewToAnimate.StartAnimation(animation);
lastPosition = position;
}
}
Was ich wirklich hier wollen, ist für die Animation fertigstellen bevor die lastPosition = positionslinie aufgerufen wird.
Und der leere AnimationsListener, da ich mir wirklich nicht sicher bin, wie ich mit dem Warten umgehen soll.
private class CheckpointAnimationListener : Java.Lang.Object, Animation.IAnimationListener
{
public void OnAnimationEnd(Animation animation)
{
}
public void OnAnimationRepeat(Animation animation)
{
}
public void OnAnimationStart(Animation animation)
{
}
}
Ich kopierte meinen Code von meiner vorherigen Frage und steckte ihn in diesen ein. Aber dein Code gibt mir eine gute Idee, wohin ich gehen soll :) Ich arbeite in Xamarin.Android, also muss ich ein paar Dinge anders machen, aber deine Idee ist gut. –