2015-11-23 13 views
7

Ho un ListView con righe che includono CheckBox. Questo ListView presenta un comportamento di filtraggio allegato, che ricicla quelle righe impostando nuovi dati (tramite un semplice metodo setData()) come cambia il criterio del filtro. In questo caso, qualsiasi riga riciclata con lo stato checked modificato aggiornerà il suo CheckBox, che a sua volta attiva l'animazione Lollipop del CheckBox che viene disegnato dentro o fuori.Disabilita temporaneamente l'animazione su Lollipop CheckBox

I modi in cui ciò distrae l'utente sono numerosi. In che modo questa animazione può essere disabilitata temporaneamente quando il suo stato viene aggiornato in modo programmatico?

+0

Forse prova a chiamare 'clearAnimation' dopo aver impostato lo stato? – Buddy

+0

Nessun dado. Sulla base di ciò che ho letto su argomenti simili, l'animazione non è un'animazione Android di prima classe, ma piuttosto una parte dello stile per le viste rilevanti nell'API di Lollipop. I tentativi infruttuosi di manipolare gli effetti di animazione sembrano confermarlo. – jneander

+0

Hanno lo stesso problema su Reyclerview. L'animazione sta causando il ritardo dello scorrimento perché il lotto di caselle di controllo nell'elenco può essere controllato per impostazione predefinita e il bindviewholder attiva tutte queste animazioni nello stesso momento in cui stai scorrendo. – Jordy

risposta

5

Chiamando il jumpDrawablesToCurrentState() sul CheckBox subito dopo aver chiamato setChecked si salta l'animazione.

Problemi correlati