2015-11-23 16 views
7

Mam ListView z wierszami, które zawierają pola wyboru. Do tego ListView dołączono funkcję filtrowania, która przetwarza te wiersze, ustawiając nowe dane (za pomocą prostej metody setData()) w miarę zmiany kryteriów filtru. Gdy to nastąpi, każdy wiersz z recyklingu, który ma zmieniony stan checked zaktualizuje swój moduł CheckBox, co z kolei spowoduje, że animacja Lollipop bloku CheckBox będzie wciągana lub wyładowywana.Tymczasowe wyłączanie animacji na Lollipop CheckBox

Sposoby rozpraszania uwagi użytkownika są liczne. W jaki sposób można tymczasowo wyłączyć tę animację, gdy jej stan zostanie zaktualizowany programowo?

+0

Może spróbuj wywołać 'clearAnimation' po ustawieniu stanu? – Buddy

+0

Bez kostki. Na podstawie tego, co przeczytałem w podobnych kwestiach, animacja nie jest pierwszorzędną animacją Androida, ale raczej częścią stylu odpowiednich widoków w Lollipop API. Nieudane próby manipulowania efektami animacji zdają się to potwierdzać. – jneander

+0

Masz ten sam problem na Reyclerview. Animacja powoduje opóźnienie przewijania, ponieważ wiele pól wyboru na liście może być zaznaczonych domyślnie, a bindviewholder uruchamia wszystkie te animacje w tym samym czasie, w którym przewijasz. – Jordy

Odpowiedz

5

Wywołanie jumpDrawablesToCurrentState() na swoim CheckBox zaraz po wywołaniu setChecked pominie animację.

Powiązane problemy