【发布时间】:2016-11-27 20:06:36
【问题描述】:
尝试做一个简单的共享元素动画,当只共享一个元素时效果很好。我正在尝试通过共享两个元素来进行实验,这就是问题所在:
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(Main2Activity.this, Pair.create((View) back, "agreedName1"), Pair.create((View) animate, "agreedName2"));
与
Pair<View, String> h = Pair.create((View) back, "agreedName1");
Pair<View, String> k = Pair.create((View) animate, "agreedName1");
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(Main2Activity.this, h, k);
两者都不起作用,因为显然:
错误:(35, 54) 错误: 找不到合适的方法 makeSceneTransitionAnimation(Main2Activity,android.support.v4.util.Pair,android.support.v4.util.Pair) 方法 ActivityOptions.makeSceneTransitionAnimation(Activity,View,String) 是 不适用(参数不匹配; android.support.v4.util.Pair 无法转换为 查看)方法 ActivityOptions.makeSceneTransitionAnimation(Activity,android.util.Pair...) 不适用(可变参数不匹配; android.support.v4.util.Pair 无法转换为 android.util.Pair)
尽管back 和animate 都是按钮(我什至尝试将它们类型转换为视图)。
同样,这仅适用于一个视图动画,如下所示:
ActivityOptionsCompat options1 = ActivityOptionsCompat.
makeSceneTransitionAnimation(this, animate, "transition1"); //CANT HAVE TWO TRANSITIONS WITHOUT PAIR HOWEVER
startActivity(intent, options.toBundle());
如何成功执行两个元素的共享动画?
我这样做的方式(在我的前两个示例中)是 shared element transition. 上的开发人员文档中所说的方式
文档明确说明:
在两个具有 多个共享元素,在两者中定义共享元素 具有 android:transitionName 属性的布局(或使用 View.setTransitionName() 两个活动中的方法),并创建一个 ActivityOptions 对象如下:
> ActivityOptions options =
> ActivityOptions.makeSceneTransitionAnimation(this,
> Pair.create(view1, "agreedName1"),
> Pair.create(view2, "agreedName2"));
我在做什么。如果我做的一切都正确,为什么会出现这个错误?
【问题讨论】:
标签: java android xml animation transition