我有一个活动 A,我从那里打开活动 B,并将共享元素传递给它。它对转换进行了很好的动画处理,但是当我返回到 Activity A 然后再次转到 Activity B 时,它仍然在堆栈中使用
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
共享元素转换未运行。
对于常规动画,您可以在 onNewIntent 中调用 overridePendingTransition() 来运行动画。https://stackoverflow.com/a/8327091 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 但没有发生任何事情。
有没有办法手动触发共享元素转换来解决这个问题。
不确定共享元素转换,但您可以覆盖
onNewIntent 方法,用于在 Activity 进入前台时应用动画。
@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);
}
希望这可以帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)