xia*_*oyu 5 android android-transitions shared-element-transition
问题
我想实现 Activity A 和 B 之间以及 Activity B 和 C 之间的共享元素转换。
我根据android 转换文档做了所有事情。
之间没有问题:
A => B => 回到 A
A => B 和 B => C => 回到 B
但如果我这样做:
最后一步不会有任何共享元素过渡(实际上不仅是共享元素过渡,即使只有淡入淡出也可能会丢失)。
我一直在到处寻找解决方案,但似乎每个人都只需要 A => B(和 B => A)共享元素转换,而不再关心从 B => C 返回到 A 的任何转换。
例子
看一个我基于android的动画示例创建的例子,其中Activity A = MainActivity,B = DetailActivity,C = DetailDetailActivity。单击活动 B 上的按钮将导航到活动 C。
小智 1
因为在执行 C => B 时,它将为 B 重新构造一个新的 EnterTransitionCoordinator,替换旧的 EnterTransitionCoordinator ,其中包含正确的内容,mPendingExitNames这对于指示视图需要在 A 和 B 之间转换非常重要。
public boolean startExitBackTransition(final Activity activity) {
ArrayList<String> pendingExitNames = getPendingExitNames(); // here
if (pendingExitNames == null || mCalledExitCoordinator != null) {
return false;
} else {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
解决方案似乎有点棘手。您可以参考ThreeActivityTransitionDemo并关注SharedElementUtils.
| 归档时间: |
|
| 查看次数: |
246 次 |
| 最近记录: |