BottomSheetBehaviour setstate без анимации

Я пробовал новый BottomSheetBehaviour с библиотекой дизайна 23.0.2, но я думаю, что он слишком ограничен. Когда я меняю состояние с помощью метода setState(), нижняя таблица использует анимацию объявлений для перехода в новое состояние.

Как изменить состояние сразу, без анимации? Я не вижу публичного метода для этого.

Ответ 1

К сожалению, похоже, что вы не можете. Вызов BottomSheetBehavior setState завершается синхронным или асинхронным вызовом startSettlingAnimation(child, state). И нет возможности переопределить эти методы поведения, причина setState является окончательной, а startSettlingAnimation - модификатором видимости пакета. Проверьте источники для получения дополнительной информации.

У меня проблемы с одним и тем же, но немного по-другому - мое состояние пользовательского интерфейса меняет setHideable на false до того, как активируется анимация разрешения, поэтому я получаю IllegalStateException там. Я рассмотрю использование BottomSheetCallback для правильного управления этим.