Listview und animation
Bin ich mit listview-animation aus der API-DEMOS, Beispiel 2. hier ist das snippet aus dem OnCreate-Methode:
ListView listview = (ListView) findViewById(android.R.id.list);
AnimationSet set = new AnimationSet(true);
Animation animation = new AlphaAnimation(0.0f, 1.0f);
animation.setDuration(50);
set.addAnimation(animation);
animation = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF, 0.0f);
animation.setDuration(200);
set.addAnimation(animation);
LayoutAnimationController controller = new LayoutAnimationController(set, 0.5f);
listview.setLayoutAnimation(controller);
Irgendwann in der Zukunft notifyDataSetInvalidated()
gefordert ist die Liste der adapter, und meine Liste ist aktualisiert. aber die Elemente sind nicht gezeigt in der animation nicht mehr.
Bitte helfen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie wiederherstellen möchten Ihr LayoutController nach Ihrem Datensatz änderungen, rufen Sie die Methode startLayoutAnimation() der Ansicht.
Sollten Sie sich dieses thread über Unterschied zwischen notifyDataSetChanged() und notifyDataSetInvalidated() (Link aktualisiert, um Punkt-zu-Romain Guy ' s Antwort!)
Kurz gesagt der Unterschied ist:
notifyDataSetChanged
: Die Elemente im Datensatz geändert (Hinzugefügt /entfernt /aktualisiert /neu geordnet, was auch immer).notifyDataSetInvalidated
: Die Datenquelle der adapter ist nicht mehr verfügbar.Hier finden Sie ein funktionierendes Beispiel mit
notifyDataSetInvalidated
Funktion im Einsatz. Wahrscheinlich wird es tun, der trick mit der animation-problem auch.