Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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