2014-10-30 3 views
4

Api 21 добавил АНИ~D под названием addSharedElement, который выглядит, как предполагается использовать похоже на общие взгляды с переходами активности, см: http://developer.android.com/reference/android/app/FragmentTransaction.html#addSharedElement(android.view.View, java.lang.String))Как работает addSharedElement api, добавленная в FragmentTransaction?

Я попытался использовать этот API, установив android:transitionName на обоих фрагментах, а затем вызывается addSharedElement на FragmentTransaction. На фрагменте я позвонил setSharedElementEnterTransition(new ChangeImageTransform());.

Однако это не влияет.

Я запускаю это на предварительном просмотре Lollipop, который был выпущен ранее в этом месяце.

ответ

3

api addSharedElement (view, name) будет соответствовать представлению View в выходящем фрагменте (он может иметь любое ненулевое имя перехода) с представлением во входящем фрагменте с именем transitionName. Это позволяет вам иметь разные имена перехода из покидающего фрагмента и входящего фрагмента.

Это обычный случай использования, когда у вас есть несколько видов, которые могут быть общими элементами в фрагменте. Например, список изображений на вашем устройстве. Когда вы нажимаете на один, он заменяет фрагмент новым, у которого есть подробный просмотр или просмотр одного изображения. В списке каждый образ будет иметь имя перехода, уникальное для элемента. Например, это может быть идентификатор строки или URI контента. В представлении с одним изображением имя перехода может быть постоянным. Скажем, это «largeImage». Вы можете легко их сопоставить:

fragmentTransaction.addSharedElement(imageIcon, "largeImage"); 
1

Попробуйте установить общий переход с помощью TransitionSet, который состоит из ChangeImageTransform и ChangeBounds.

Смежные вопросы