Animation.setFillAfter/Before - работают ли они/для чего они нужны?
Как и в названии моего вопроса, что должны делать методы setFillBefore() и setFillAfter()?
Я надеялся, что setFillAfter() внесет изменения в View Permanent после завершения анимации, но это неверно?
Ответ 1
Ответ: да, они работают, возможно, не для того, что вы ожидаете - например, описание для setFillAfter(boolean fillAfter) говорит
Если fillAfter истинно, преобразование, что эта анимация Выполнение будет сохраняться, когда оно закончил.
и когда он установлен в true, он делает это.
Однако, неинтуитивно анимация на Android фактически не олицетворяет сам вид View, а скорее анимирует растровое представление представления.
Вероятно, проблема заключается в том, что после анимации представление возвращается к тому, как было до анимации - setFillAfter и setFillBefore не может помочь вам в этом, потому что в этой ситуации вы действительно хотите сделать устанавливает свойства представления таким же, как и анимированное представление (они являются отдельными вещами), а setFillAfter и setFillBefore применяются только к свойствам анимации, а не к свойствам вида.
Причина, по которой они существуют, - это объединение анимаций. Предположим, у вас была трансляционная анимация, а затем исчезновение. Если вы не установили setFillAfter(true) в анимацию перевода, тогда View переведет, вернется к исходной позиции и затем исчезнет. С setFillAfter(true), установленным в анимации трансляции, вид будет перемещаться, а затем исчезать на его текущем месте.