Нужен ассист. =(
Не могу адекватно сделать анимашку.
Анимирую процесс исчезновения/появления двух кнопок. Исчезновение сделал, работает хорошо. Не могу сделать появление. Посмотрите пж, правильно ли я себе алгоритм для появления кнопок представляю.
Приложу видео исчезновения кнопок, чтобы было понятно о чём речь. Появление кнопок очень похоже, это как бы реверс, состоит из из некст этапов:
1) Над облаком "Найдено выражений" плавно образуется свободное место под кнопки "Показать выбранные теги" и "Сбросить". Плавно здесь означает, что облако "Найдено выражений" плавно проезжает какое - то расстояние вниз.
2) Когда выезд завершился, слева и справа выезжают кнопки "Показать выбранные теги" и "Сбросить" соответственно.
У меня не получается этапы рисования и определения размеров побороть.
Технически сейчас всё выглядит так:
1) В корневой вьюхе есть
LinearLayout
, в котором находятся две кнопки. Сам layout и кнопки в состоянии
Gone
. Вот пастебин блока кода, тут ничего интересного нет на самом деле.
https://pastebin.com/SJtG4S8x2) Когда приходит время анимировать появление кнопок, вызывается этот код, который это должен делать на фулл, т.е и с контейнером для кнопок поработать, и сами кнопки анимировать:
https://pastebin.com/x44kCJ33fragment_word_wrapper_tags.visible()
fragment_word_btn_tags_show.invisible()
fragment_word_btn_tags_remove.invisible()
Делаю контейнер видимым и кнопки
invisible
, чтобы можно было расчитать фулл высоту контейнера для анимации его "выезда". Кнопки
invisible
, т.к в процессе выезда контейнера кнопок не должно быть видно.
fragment_word_wrapper_tags.requestLayout()
fragment_word_wrapper_tags.measure(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
requestLayout - оповещаю, что у контейнера изменился размер.
measure - вот тут я очень надеюсь на то, что этот вызов позволит далее, где я вызываю
measuredHeight
получить не ноль. Это кстати не работает, всё - равно ноль приходит. Не знаю почему, вроде бы если юзается post, должно приходить корректное значение.
Ну и дальше идёт ValueAnimator, который анимирует вызов, и после которого в блоке
doOnEnd {}
экстеншенами анимируется выезд кнопок.
Что мне поменять нужно, чтобы анимация заработала? С нулём в высоте я разберусь через какое - то время, но мне что - то подсказывает что оно нифига не будет работать всё - равно.