共享元素后动画,无后退

时间:2019-03-09 16:08:35

标签: android android-animation android-transitions shared-element-transition

我在一个应用程序中使用一个活动多个片段。我使用共享元素动画。我有两个片段,其中一个是详细信息页面。

我不想为片段过渡添加addToBackStack函数。在某些情况下,细节片段返回时没有动画。 (fragmentMain-> fragmentDetail)

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 fragmentDetail-> fragmentMain 会自动显示动画。但是我不想使用回栈。

以下代码不适用于 fragmentDetail-> fragmentMain。

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();

在这种情况下,如何制作共享元素动画?

0 个答案:

没有答案