Я пытаюсь добиться следующего эффекта, используя FragmentTransaction.setCustomAnimations.
- Фрагмент A показывает
- Заменить фрагмент A фрагментом B. Фрагмент A должен оставаться видимым во время замены. Фрагмент B должен скользить справа. Фрагмент B должен скользить в верхней части фрагмента A.
У меня нет проблем с настройкой слайда в анимации. Моя проблема заключается в том, что я не могу понять, как сделать Fragment A, где он находится, и быть UNDER Fragment B во время работы слайда в анимации. Независимо от того, что я делаю, кажется, что Fragment A находится сверху.
Как я могу это достичь?
Вот код FragmentTransaction:
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.slide_in_right, R.anim.nothing, R.anim.nothing,
R.anim.slide_out_right);
ft.replace(R.id.fragment_content, fragment, name);
ft.addToBackStack(name);
ft.commit();
Как вы можете видеть, я определил анимацию R.anim.nothing для анимации "out", потому что на самом деле я не хочу, чтобы Fragment A ничего не делал, кроме как оставаться там, где он находится во время транзакции.
Вот ресурсы анимации:
slide_in_right.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="100%p"
android:toXDelta="0"
android:zAdjustment="top" />
nothing.xml
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime"
android:fromAlpha="1.0"
android:toAlpha="1.0"
android:zAdjustment="bottom" />