10

Próbowałem nowego BottomSheetBehaviour z biblioteką projektowania 23.0.2, ale myślę, że to zbyt ograniczone. Gdy zmieniam stan za pomocą metody setState(), dolna krawędź wykorzystuje animację reklamową do przejścia do nowego stanu.BottomSheetBehaviourstation bez animacji

Jak mogę zmienić stan natychmiast, bez animacji? Nie widzę publicznej metody, aby to zrobić.

+0

Odpowiadający problem w wydawcy Androida https://issuetracker.google.com/issues/62124243 –

Odpowiedz

1

Niestety wygląda na to, że nie możesz. Inwokacja BottomSheetBehavior 's setState kończy się synchronicznym lub asynchronicznym wywołaniem startSettlingAnimation(child, state). I nie ma sposobu na zastąpienie tych metod zachowania, ponieważ przyczyna setState jest ostateczna, a startSettlingAnimation ma modyfikator widocznego pakietu. Sprawdź źródła, aby uzyskać więcej informacji.

Mam problemy z tym samym, ale w nieco inny sposób - mój stan interfejsu zmienia się na setHideable na wartość false, zanim ta wywołająca animacja wywoła, więc dostaję tam IllegalStateException. Rozważę użycie BottomSheetCallback, aby właściwie to zarządzać.

+0

Kiedy wywołuję funkcję setState() w celu rozwinięcia, otrzymuję animację, ale nie dostaję jej dla stanu STATE_COLLAPSED. To dla mnie bardzo dezorientujące. – fobbymaster