2017-09-10 4 views
-1

am en utilisant ce code dans mon activitétransition élément commun de l'activité à fragmenter en utilisant ViewPager

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     view.setTransitionName("pic"); 

    ActivityOptionsCompat a=ActivityOptionsCompat.makeSceneTransitionAnimation((Activity) context,view,view.getTransitionName()); 

    Intent i3=new Intent(context,MovieInfo.class); 
    i3.putExtra("id",view.getId()); 
    startActivity(i3,a.toBundle()); 
    } 

et dans mon Fragment classe je utilise ce

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 

     getActivity().getWindow().setSharedElementExitTransition(TransitionInflater.from(getActivity()).inflateTransition(R.transition.shared_element_transition)); 
    } 
} 

J'ai aussi essayé d'utiliser dans l'activité principale mais pas en mesure de réaliser la transition d'élément partagé, mais quand je retourne à ma transition d'activité est fonctionne bien implique le reste du code est bien!
Toute aide serait super merci!

Répondre

0

D'abord, vous devez activer windowContentTrasition dans votre thème dans App styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="android:windowContentTransitions">true</item> 
    . 
    . 
</style> 

Suivant ajouter même propriété transitionName aux deux éléments communs à la fois les mises en page

android:transitionName="transition_name" 

Dans votre activité créer un intention comme ceci

ActivityOptionsCompat options = ActivityOptionsCompat. 
    makeSceneTransitionAnimation(this, view, "transition_name"); 

Intent intent = new Intent(this, MovieInfo.class); 
startActivity(intent, options.toBundle()); 
+0

DetailsActivity.class sera mon fragment ou activité classe? – phpdroid

+0

ce sera MovieInfo.class. Je vais mettre à jour que dans la réponse –

+0

le problème est l'image qui doit être transféré est en Fragment dans MovieInfo.class – phpdroid