Я хочу поменять местами два фрагмента в действии с помощью анимации. Предположим, что страница A предназначена для фрагмента A и левой стороны экрана, а страница B предназначена для фрагмента B, то есть в правой части экрана. Теперь я хочу, чтобы, когда я нажимаю кнопку на странице A, страница A перемещается в правую часть экрана с некоторой анимацией перехода.
Я попробовал приведенный ниже код заменить позицию
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container, new FragB());
fragmentTransaction.commit();
Ищу ключ к разгадке.
Заранее спасибо.
android
android-animation
Дипак Гоэль
источник
источник
Ответы:
Старый вопрос, и вы, вероятно, уже поняли это, но для справки в будущем:
вот что вы используете для установки пользовательской анимации при замене фрагмента с помощью кода:
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 и вместо этого реализует только старую структуру анимации.
источник