请观看显示共享元素 Activity 转换的视频。 这是从列表 Activity 到详细信息 Activity 的过渡。
[视频链接失效]
如您所见, ImageView 绘制在选项卡的前面。
我期望的是在 imageview 上以字体绘制选项卡并在整个过渡过程中淡出(以便在动画结束时它们消失)。
唯一可行的方法是将 windowSharedElementsUseOverlay
设置为 true,
但这有其他丑陋的影响,所以这似乎不是一个选择。
最常建议的方法是将选项卡包含在转换本身中,但问题是选项卡不在详细信息 Activity 中,因此无法共享。
代码: 我这样开始详细 Activity :
options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, pairs);
ActivityCompat.startActivity(activity, subActivity, options.toBundle());
最佳答案
我相信您可能需要从过渡动画中排除而不是包含选项卡布局。
所以在列表 Activity 的 onCreate
中,包括:
Transition fade = new Fade();
fade.excludeTarget(R.id.tab, true); // use appropriate id for you tab
getWindow().setExitTransition(fade);
getWindow().setEnterTransition(fade); // try getWindow().setReenterTransition(fade); instead
一定要看看 Alex Lockwood 对 How do I prevent the status bar and navigation bar from animating during an activity scene animation transition? 的回答他对这个话题给出了更深入、更深入但易于理解的解释。您可能还想考虑在该帖子中添加/实现解决方案。
关于Android共享元素转换: hero view gets drawn in front of other,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36958609/