2015-04-21 2 views
5

У меня проблема с sharedElementTransitions. У меня есть один activity с fragment - от этого fragment я начинаю новый activity с sharedElementTransitions, внутри этого activity я начинаю fragment и внутри этого fragment является viewPager, теперь, когда я называю setTransitionName в этом fragment все работает очень хорошо, но когда я перехожу его fragment то есть внутри моего viewPager и назовите его внутри onCreateView нет плавной анимации ввода, обратная анимация работает по назначению. Я был совершенно уверен, что это может быть разрешено с помощью postponeEnterTransition, поэтому в моем activity с fragment с viewPager Я звоню postponeEnterTransition() и в моем фрагменте getActivity().startPostponedEnterTransition(), но он все еще не работает ... Любые идеи, что может пойти не так?Переход общего элемента с viewPager

ответ

4
// Postpone the shared element enter transition in onCreate() 
postponeEnterTransition(); 

// after the layout and data is ready, invoke startPostponedEnterTransition() to start the enter transition animation 
// for example: 
sharedElement.getViewTreeObserver().addOnPreDrawListener(
new ViewTreeObserver.OnPreDrawListener() { 
    @Override 
    public boolean onPreDraw() { 
     sharedElement.getViewTreeObserver().removeOnPreDrawListener(this); 
     startPostponedEnterTransition(); 
     return true; 
    } 
}); 

Пожалуйста, обратитесь к: http://www.androiddesignpatterns.com/2015/03/activity-postponed-shared-element-transitions-part3b.html для получения более подробной информации

Надеется, что это будет полезно!

+1

Ответы на ссылки очень разочарованы здесь, потому что ссылки могут стать мертвыми в будущем. Я предлагаю вам отредактировать свой ответ с помощью цитат из источников, которые вы цитируете. –

+0

Что делать, если у меня есть несколько общих элементов? Мне нужно добавить preDrawListeners для всех из них? – Lester