我正在尝试在涉及共享元素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());
当我注释掉放置标志的行时,转换工作。