makeSceneTransitionAnimation(this,pair1,pair2)由于某种原因将无法解析

时间:2019-06-09 21:02:19

标签: android android-animation androidx

我正在两个活动之间进行场景转换,在这里我交换了两个视图的位置。我正在使用makeSceneTransitionAnimation。但是无论何时我尝试添加它所提供的对都无法解决方法

如果我只做一个像makeSceneTransitionAnimation(this,m4,“ swapTransistion”)这样的视图,它就可以很好地工作,但是每当我添加一个对不起作用时,我都会在无法获得的地方添加一个示例代码解决

intent = new Intent(this, SecondActivity.class);
Pair<ImageView, String> p1 = Pair.create((ImageView) m4, "swapTransition");
Pair<View, String> p2 = Pair.create((View) m2, "blueTransition");

ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(this,p1,p2);

startActivity(intent, options.toBundle());

编辑:我了解将其更改为ActivityOptions而不是Compat即可使用。但是我要添加对较早版本的android的支持,并使用支持库,因为我不希望它对较旧的Android版本崩溃

1 个答案:

答案 0 :(得分:0)

尝试使用ActivityOptions来做到这一点:

View view1 = m4;
View view2 = m2;   
ActivityOptions transitionActivityOptions = ActivityOptions.makeSceneTransitionAnimation(this,
                            Pair.create(view1, "swapTransition"),
                            Pair.create(view2, "blueTransition"));

编辑:

在这里,我如何使用ActivityOptionsCompat转换示例

  android.support.v4.util.Pair[] pairs = new  android.support.v4.util.Pair[3];
                    pairs[0] = new  android.support.v4.util.Pair(sharedView, transitionName);
                    pairs[1] = new  android.support.v4.util.Pair(sharedView2, transitionName2);
                    pairs[2] = new  android.support.v4.util.Pair(sharedView2, transitionName3);
                    ActivityOptionsCompat transitionActivityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(this,pairs);

现在就可以使用您的示例,祝您晚上愉快!