1

我正在尝试在涉及共享元素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());

当我注释掉放置标志的行时,转换工作。

4

1 回答 1

-1

尝试通过样式而不是在运行时定义动画。由于活动既不是破坏也不是第二次创建,它不会显示转换。

于 2016-01-22T11:03:35.310 回答