2015-11-23 6 views
7

Ich habe ein ListView mit Zeilen, die CheckBoxes enthalten. Diese ListView verfügt über ein Filterungsverhalten, das diese Zeilen recycelt, indem neue Daten (über eine einfache setData()-Methode) festgelegt werden, wenn sich die Filterkriterien ändern. In diesem Fall aktualisiert jede recycelte Zeile mit dem Status checked ihre CheckBox, was wiederum die Lollipop-Animation der CheckBox auslöst.Animation vorübergehend deaktivieren auf Lollipop CheckBox

Die Wege, auf die dies für den Benutzer ablenkend wirkt, sind zahlreich. Wie kann diese Animation vorübergehend deaktiviert werden, wenn ihr Status programmgesteuert aktualisiert wird?

+0

Vielleicht versuchen, nach dem Setzen des Status 'clearAnimation' aufzurufen? – Buddy

+0

Kein Würfel. Basierend auf dem, was ich in ähnlichen Ausgaben gelesen habe, handelt es sich bei der Animation nicht um eine erstklassige Android-Animation, sondern um einen Teil des Styles für relevante Views in der Lollipop-API. Erfolglose Versuche, Animationseffekte zu manipulieren, scheinen dies zu unterstützen. – jneander

+0

Haben Sie das gleiche Problem auf Reyclerview. Die Animation führt dazu, dass der Bildlauf verzögert wird, da viele Kontrollkästchen in der Liste standardmäßig aktiviert werden können und bindviewholder alle diese Animationen gleichzeitig mit dem Bildlauf auslöst. – Jordy

Antwort

5

Der Aufruf von jumpDrawablesToCurrentState() auf Ihrer CheckBox direkt nach dem Aufruf von setChecked überspringt die Animation.