Gho*_*ing 3 android android-transitions shared-element-transition
我尝试在我的应用程序中添加自定义共享元素转换,并使其在不同活动中的某些不同模式下工作。但在我的测试中,仅执行被调用活动的进入转换。
这是我在调用活动 A 中的代码:
TransitionSet set = new TransitionSet();
set.setOrdering(TransitionSet.ORDERING_TOGETHER);
set.addTransition(new ChangeBounds());
PortalHeaderBackgroundTransition back = new PortalHeaderBackgroundTransition();
back.setMode(0);
set.addTransition(back);
getWindow().setSharedElementEnterTransition(set);
set = new TransitionSet();
set.setOrdering(TransitionSet.ORDERING_TOGETHER);
set.addTransition(new ChangeBounds());
back = new PortalHeaderBackgroundTransition();
back.setMode(1);
set.addTransition(back);
getWindow().setSharedElementExitTransition(set);
Run Code Online (Sandbox Code Playgroud)
这是我在被调用的活动 B 中的代码:
TransitionSet set = new TransitionSet();
set.setOrdering(TransitionSet.ORDERING_TOGETHER);
set.addTransition(new ChangeBounds());
PortalHeaderBackgroundTransition back = new PortalHeaderBackgroundTransition();
back.setMode(2);
set.addTransition(back);
getWindow().setSharedElementEnterTransition(set);
set = new TransitionSet();
set.setOrdering(TransitionSet.ORDERING_TOGETHER);
set.addTransition(new ChangeBounds());
back = new PortalHeaderBackgroundTransition();
back.setMode(3);
set.addTransition(back);
getWindow().setSharedElementExitTransition(set);
Run Code Online (Sandbox Code Playgroud)
我在 PortalHeaderBackgroundTransition 中添加断点,每当 A 调用 B 或 B 返回 A 时,仅执行模式 2 转换。
为什么会出现这种情况?另一个转换何时执行?
当 ActivityA启动 Activity时B,会发生以下事件:
A的退出共享元素转换已运行。B的进入共享元素转换已运行。当B返回到 时A,会发生以下事件:
B运行 的返回共享元素转换(如果未指定返回转换,B则将使用 的输入共享元素转换)。A运行 的重新进入共享元素转换(如果未指定重新进入转换,A则将使用 的退出共享元素转换)。因此,为了回答您的问题,A永远不会执行输入共享元素转换,因为这就是活动转换的工作方式。:)
| 归档时间: |
|
| 查看次数: |
1637 次 |
| 最近记录: |