Я использую одно действие несколько фрагментов в моем приложении.Я использую общий элемент анимации.У меня есть два фрагмента, один из которых является страницей подробностей.
Я не хочу добавлять функцию ToTackStack для перехода фрагмента.И фрагмент детали возвращается без анимации для некоторых случаев. (fragmentMain-> фрагментDetail)
DetailFragment detailFragment = new DetailFragment();
Transition moveTransition = TransitionInflater.from(MainActivity.singleInstance)
.inflateTransition(android.R.transition.move); // android.R.transition.move
moveTransition.setDuration(400);
detailFragment.setSharedElementEnterTransition(moveTransition);
FragmentManager fragmentManager = MainActivity.getActivityFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction()
.addSharedElement(sharedView, sharedView.getTransitionName())
.replace(R.id.mainLayout, detailFragment);
fragmentTransaction.commitAllowingStateLoss();
fragmentManager.executePendingTransactions();
Этот код работает для меня.Я знаю, что, если я использую addToBackStack
, fragmageDetail-> fragmageMain , то анимация работает автоматически.Но я не хочу использовать обратный стек.
Ниже код не работает для fragmageDetail- >gmentMain.
detailFragment.setSharedElementReturnTransition(moveTransition);
mainFragment.setSharedElementEnterTransition(moveTransition);
FragmentManager fragmentManager = MainActivity.getActivityFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction()
.addSharedElement(textView, textView.getTransitionName())
.replace(R.id.mainLayout, mainFragment);
fragmentTransaction.commitAllowingStateLoss();
fragmentManager.executePendingTransactions();
Как я могу поделитьсяэлемент анимации для этого случая?