FillAfter и fillEnabled не работает в Android-анимации просмотра XML
Мне интересно, как это поступить... В настоящее время я устанавливаю два значения в XML-XML:
android:fillEnabled="true"
android:fillAfter="true"
Однако преобразование не применяется после того, как анимация выполнена... она всегда сбрасывается. Когда я устанавливаю его программно с помощью кода, он работает:
animation.setFillEnabled(true);
animation.setFillAfter(true);
Поэтому мне просто интересно, как это должно работать, поскольку я предпочел бы установить его в XML. Спасибо!
Ответы
Ответ 1
Он также работает, если у вас нет установленного тега и вы просто выполняете перевод или что-то вроде этого.
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:fromXDelta="0"
android:toXDelta="0"
android:fromYDelta="1000"
android:toYDelta="-300"
android:startOffset="100"
android:duration="1000"
android:fillAfter="true" />
Ответ 2
У меня была та же проблема, это сработало для меня:
<set
android:fillEnabled="true"
android:fillAfter="true"
xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0"
android:toYDelta="-20%p"
android:duration="7000" />
</set>
Поместите атрибуты fillEnabled и fillAfter в тег Set.
Ответ 3
В общем случае используйте fillAfter и fillEnabled в корневом элементе
поэтому либо
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:fillEnabled="true"
android:fromXDelta="0%"
android:toXDelta="-100%"
android:duration="500" />
ИЛИ
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:fillEnabled="true">
<translate
android:fromXDelta="0%"
android:toXDelta="-100%"
android:duration="500" />
</set>
Ответ 4
размещение атрибутов fillEnabled и fillAfter в установленном теге помогло решить проблему.