2016-11-07 5 views
3

Je crée une application Android avec un calendrier. J'ai utilisé un ListView pour créer l'effet Timeline. Quand je clique sur un ListViewItem j'utilise makeSceneTransitionAnimation pour afficher la vue détaillée. Tout fonctionne bien, sauf quand je suis dans la vue détaillée et j'appuie sur le bouton de retour, le makeSceneTransitionAnimations anime la page à la ligne au-dessus de la ligne initialement cliquée et l'écran clignote ensuite.makeSceneTransitionAnimation retour bouton glitch

C'est le code que j'utilise pour créer l'animation:

View timelineObject = view.findViewById(R.id.transition); 
    timelineObject.setTransitionName("selectClientTransition"); 

    Intent intent = new Intent(this, DetailActivity.class); 

    ActivityOptionsCompat options = ActivityOptionsCompat. 
      makeSceneTransitionAnimation(this, timelineObject , "selectClientTransition"); 
    this.startActivity(intent, options.toBundle()); 

J'ai essayé remplaçant le bouton de retour dans mon activité détaillée, mais je ne vois pas un moyen de transmettre la position de l'élément listview comme paramètre au makeSceneTransitionAnimation.

+0

Utilisez-vous émulateur ou mobile pour exécuter l'application – Raj

Répondre

0
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); 
     Explode explode = new Explode(); 
     getWindow().setExitTransition(explode); 
    } 
    super.onCreate(savedInstanceState);  


/*------Your code When the list item is click------*/ 
Intent intent = new Intent(context1, Main_testcollapse.class); 
       intent.putExtra("time", list.get(pos).getTime()); 
       if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { 
        ActivityOptions activityOptions = ActivityOptions.makeSceneTransitionAnimation((Activity) context1, view, "cardname"); 
        startActivity(intent, activityOptions.toBundle()); 
       } else { 
        startActivity(intent); 
       } 

Une autre activité à l'intérieur de onCreate

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     getWindow().setAllowEnterTransitionOverlap(false); 
     Slide slide=new Slide(Gravity.END); 
     getWindow().setReturnTransition(slide); 
    }