Ответ 1
Старый квест и вы, вероятно, уже разобрались, но для справок в будущем:
здесь, что вы используете для настройки пользовательской анимации при замене фрагмента с помощью кода:
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
ft.replace(R.id.fragment_container, newFragment, "fragment");
// Start the animated transition.
ft.commit();
Вот пример анимации slide_in_left:
<?xml version="1.0" encoding="utf-8"?>
<set>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="-100%"
android:toXDelta="0"
android:interpolator="@android:anim/decelerate_interpolator"
android:duration="500"/>
</set>
Обратите внимание, что это анимация, если вы используете библиотеку совместимости. Вместо этого, если вы используете SDK и поддерживаете поддержку FragmentManager, тогда ваша анимация будет выглядеть так:
<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:propertyName="x"
android:valueType="floatType"
android:valueFrom="-1280"
android:valueTo="0"
android:duration="500"/>
</set>
Это связано с тем, что библиотека совместимости не поддерживает новый тип objectAnimator и вместо этого реализует только старую среду анимации.