是的,过渡允许这样做。
在您的示例中,您的层次结构中已经有网格和详细视图。要使用转换,如果详细视图不在视图层次结构中开始,它会更好地工作。你需要交换这两种观点。
有两种(类似的)方法可以做到这一点。第一个是在场景中有网格视图。然后使用 TransitionManager.go(detailScene, transition)。
第二种方法是使用TransitionManager.beginDelayedTransition,然后将详细布局换成网格布局。
让共享的观点有共同点很重要。通常它是 View ID 或 transitionName。这个链接将告诉转换系统,即使视图是不同的实例。
您要使用的过渡是@android:transition/move。它结合了 ChangBounds、ChangeTransform、ChangeImageTransform 和 ChangeClipBounds。您必须将其定位在共享元素视图上。看起来您将需要另一个过渡(淡入淡出?)进入和/或退出视图。
像这样的东西:
TransitionSet shared = ...
shared.addTarget("sharedName");
gridElement.setTransitionName("sharedName");
Fade fade = new Fade();
fade.excludeTarget("sharedName", true);
TransitionSet set = new TransitionSet();
set.addTransition(shared)
.addTransition(fade);
TransitionManager.go(detailScene, set);