Я заменяю фрагмент другим фрагментом. Я хочу, чтобы первый фрагмент исчез с эффектом затухания, а второй фрагмент появился с эффектом затухания. Как это делается?
Как применить анимацию fade-in/fade-out при замене фрагмента
Ответ 1
С добавлением кода @MD
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
ft.setCustomAnimations(R.anim.fade_in,
R.anim.fade_out);
ft.replace(R.id.realtabcontent, fragment);
ft.commit();
и когда вы поп-фрагмент затем применяете анимацию, например:
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
ft.setCustomAnimations(R.anim.fade_out, R.anim.fade_in);
ft.replace(R.id.realtabcontent, fragment);
ft.commit();
и XML для fadeIn
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
и XML для fadeOut
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
Ответ 2
Когда вы нажимаете Fragment
примените анимацию, например:
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
ft.setCustomAnimations(R.anim.fade_in,
R.anim.fade_out);
ft.replace(R.id.realtabcontent, fragment);
ft.commit();
и когда вы поп- Fragment
затем применяете анимацию, например:
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
ft.setCustomAnimations(R.anim.fade_out, R.anim.fade_in);
ft.replace(R.id.realtabcontent, fragment);
ft.commit();
Надеюсь, что это работает для вас.
Обновление: для получения дополнительной информации перейдите к
Ответ 3
Стоит добавить, что setCustomAnimations также может иметь 4 аргумента:
FragmentTransaction setCustomAnimations (int enter,
int exit,
int popEnter,
int popExit)
Задайте конкретные ресурсы анимации для выполнения фрагментов, которые входят и выходят в эту транзакцию. Анимации popEnter и popExit будут воспроизводиться для операций ввода/выхода, особенно при появлении заднего стека.