Я знаю, что этот вопрос довольно старый, но я подумал, что это будет распространенной проблемой, прежде чем я сам столкнусь с ним.
Я почерпнул вдохновение из вашего кода, но вместо того, чтобы использовать отдельный классвот так, что я сделал, это расширил класс LinearLayout и добавил несколько методов, чтобы иметь возможность анимировать его при изменении содержимого (в моем случае я делаю некоторые дочерние представления VISIBLE или GONE).Все еще прорабатываются некоторые детали, но до сих пор это работает довольно хорошо.
Хорошо, что я могу получить доступ к / расширить метод onMeasure, поэтому мне не нужно оценивать размер после анимации,независимо от того, что у меня в контейнере, анимация всегда будет в нужном месте.
Надеюсь, это поможет