Андроид поп-фрагмента из backstack с анимацией

У меня есть активность, которая загружает в нее фрагмент A. Фрагмент A содержит ListView, и при нажатии на элементе списка я загружаю еще один фрагмент B вместо фрагмента A, чтобы показать детали элемента списка. При нажатии кнопки и нажатии кнопки возврата устройства я загружаю предыдущий фрагмент, который является фрагментом A, который показывает ListView. Все это работает нормально, но я хочу загрузить фрагмент A с анимацией при нажатии или нажатием кнопки. Я делаю это таким образом, но не работаю:

FragmentManager fsm = getSupportFragmentManager(); FragmentTransaction ftransaction = fsm.beginTransaction(); ftransaction.setCustomAnimations(R.anim.enter_from_left, R.anim.enter_from_left); fsm.popBackStack(); ftransaction.commit(); <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false" > <translate android:duration="700" android:fromXDelta="-100%" android:fromYDelta="0%" android:toXDelta="0%" android:toYDelta="0%" /> </set> <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false" > <translate android:duration="700" android:fromXDelta="-100%" android:fromYDelta="0%" android:toXDelta="0%" android:toYDelta="0%" /> </set> 

Solutions Collecting From Web of "Андроид поп-фрагмента из backstack с анимацией"

Если вам нужны анимации backstack, вам необходимо использовать:

SetCustomAnimations (int enter, int exit, int popEnter, int popExit)

Что-то вроде:

 setCustomAnimations(R.anim.enter_from_left, R.anim.enter_from_left, R.anim.exit_to_left, R.anim.exit_to_left); 

В моем случае

 FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right, R.anim.slide_in_right, R.anim.slide_out_left); ft.replace(R.id.fragment_container, targetFragment).addToBackStack(null).commit(); 

Эта линия

 ft.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right, R.anim.slide_in_right, R.anim.slide_out_left); 

Создаст идеальную анимацию.

slide_in_right

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="50%p" android:toXDelta="0" android:duration="@android:integer/config_mediumAnimTime"/> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_mediumAnimTime" /> </set> 

slide_out_left

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="-50%p" android:duration="@android:integer/config_mediumAnimTime"/> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@android:integer/config_mediumAnimTime" /> </set>