makeSceneTransitionAnimation (this, pair1, pair2) по какой-то причине не будет разрешен - PullRequest
0 голосов
/ 10 июня 2019

Я делаю переход сцены между двумя действиями, где я меняю месторасположение двух видов.Я использую 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 голосов
/ 10 июня 2019

попробуйте сделать это таким образом, используя 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);

и теперь это работает, просто используйте ваш пример, хорошего вечера!

...