我正在尝试在Transition
之间执行一个涉及共享元素的Activities
。
当我在没有任何特殊标志的情况下启动Intent时,转换将按预期显示。
我的问题是当我使用Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP
标志启动转换时。
正如预期的那样,在这种情况下,目标Activity
不会创建,因为它已经存在于堆栈中,而是在其顶部的Activities
被销毁,Intent
被路由到现有的实例。
碰巧的是,似乎未创建Activity
会避免触发过渡。
有没有人来过这个并且有任何已知的解决方法吗?
代码是:
final Intent intent = new Intent(this, TargetActivity.class)
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
final Pair<View, String> sharedElement = new Pair<View, String>(findViewById(R.id.shared_elem_id), "TAG");
final ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(this, sharedElement);
ActivityCompat.startActivity(this, intent, options.toBundle());
当我注释掉放置过渡的标志的行时。
答案 0 :(得分:-1)
尝试通过样式而不是在运行时定义动画。由于活动既不破坏也不创造第二次,它不会显示过渡。