Animation.setFillAfter / Before – работают ли они / для чего они нужны?

Как и в названии моего вопроса, каковы должны быть методы setFillBefore() и setFillAfter() ?

Я надеялся, что setFillAfter() внесет изменения в представление setFillAfter() после завершения анимации, но это неверно?

Solutions Collecting From Web of "Animation.setFillAfter / Before – работают ли они / для чего они нужны?"

Ответ да, они действительно работают, возможно, не для того, что вы ожидаете – например, описание setFillAfter(boolean fillAfter) говорит

Если fillAfter истинно, преобразование, которое выполняет эта анимация, сохранится, когда оно будет завершено.

И когда он установлен в true, он делает это.

Однако, неинтуитивно анимация на Android фактически не олицетворяет сам вид View, а скорее анимирует растровое представление View.

Проблема, которую вы, вероятно, имеете в том, что после анимации представление возвращается к тому, как это было до анимации – setFillAfter и setFillBefore не могут помочь вам в этом, потому что в этой ситуации то, что вы действительно хотите сделать, это установить свойства View Быть такими же, как анимированное представление (они являются отдельными вещами), а setFillAfter и setFillBefore применяться только к свойствам анимации, а не к свойствам View.

Причина, по которой они существуют, заключается в цепочке анимации. Предположим, у вас была трансляционная анимация, а затем исчезновение. Если вы не установили setFillAfter(true) в анимации перевода, тогда View переведет, вернется в исходное положение и затем исчезнет. С setFillAfter(true) установленным в анимации трансляции, вид будет перемещаться, а затем исчезать в текущем месте.