我有一个活动A,我打开活动B,并将共享元素传递给它。它可以很好地转换过渡,但是当我回到活动A然后再次使用
进入活动B时仍然在堆栈中intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
不运行共享元素转换。
使用常规动画,您可以在onNewIntent中调用overridePendingTransition()来运行动画。 https://stackoverflow.com/a/8327091
我尝试在那里调用startPostponedEnterTransition()但没有发生任何事情。
这是我允许转换的代码
void allowWindowTransitions(){
Window w = getWindow();
w.requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS);
开始活动的代码
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
ActivityOptionsCompat options = ActivityOptionsCompat.
makeSceneTransitionAnimation(this, sharedElement, "profile");
startActivity(intent, options.toBundle());
我试过搞乱setSharedElementReturnTransition& setSharedElementReenterTransition但没有任何反应。
是否有办法手动触发共享元素转换以解决此问题。
答案 0 :(得分:-2)
不确定共享元素转换但您可以覆盖 onNewIntent方法在活动进入前景时应用动画。
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Log.i(TAG, "onNewIntent: ");
overridePendingTransition(R.anim.transition_enter_from_right, R.anim.transition_exit_to_left);
}
希望这有帮助!