Android共享元素转换: hero view gets drawn in front of other

标签 android shared-element-transition

请观看显示共享元素 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/

相关文章:

Android 服务未收到位置更新

android - 2 个 Activity 之间的 SharedElementTransition 动画效果不正确

android - 在 Android 5.0 中转换 ImageView 时的奇怪问题

ViewGroup.resetResolvedTextDirection 中的 Android StackOverflowError

android - fragment 到 fragment 的过渡 : postponeEnterTransition() does not work

android - 运行 Android 8.0 的三星设备上的共享元素转换崩溃

android - 如何使用recyclerview实现Material Design父子过渡

android - 什么是在 SQLite 数据库中存储订单的好方法

android - 将 Id 设置为动态创建的 edittext

android - 删除最后一项时 Recyclerview 崩溃。 NullPointerException : android. View .ViewGroup$LayoutParams android.view.View.getLayoutParams()