CustomAnimation при вызове popBackStack на FragmentManager
В моей деятельности одним нажатием кнопки я заменяю текущий фрагмент новым фрагментом, используя пользовательскую анимацию, как в этом примере.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_anomalie:
Fragment contentFragment = getFragmentManager().findFragmentById(R.id.content);
if(contentFragment instanceof AnomalieListFragment)
{
getFragmentManager().popBackStack();
return true;
}
else
{
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out);
anomalieFragment = new AnomalieListFragment();
ft.replace(R.id.content, anomalieFragment);
ft.addToBackStack(null);
ft.commit();
}
...
Тем не менее, отбрасывая стек, не отображается анимация.
Есть ли способ указать пользовательскую анимацию, как в FragmentTransaction, с помощью метода setCustomAnimations?
Ответы
Ответ 1
После дальнейшего чтения документации я обнаружил, что использование этой подписи setCustomAnimation
позволило воспроизвести анимацию при нажатии кнопки "Назад" или вызов getFragmentManager().popBackStack();
Я изменил свой код следующим образом
...
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out, android.R.animator.fade_in, android.R.animator.fade_out);
anomalieFragment = new AnomalieListFragment();
ft.replace(R.id.content, anomalieFragment);
ft.addToBackStack(null);
ft.commit();
...