Durante la sostituzione del frammento, sto usando l'animazione di diapositive disponibile per la versione di lecca-lecca di Android. Funziona come previsto per questa particolare sostituzione, ma premendo il pulsante Indietro, si apre per la prima volta il frammento corrente & e si esegue l'inversione dell'introduzione dell'animazione (slide out).android lollipop - setentertransition() per frammenti che non funzionano correttamente all'uscita
private void replaceContentFrameByFragment(Fragment replaceBy, String replaceByFragmentTag) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Slide slide = new Slide(Gravity.BOTTOM);
slide.setDuration(1000);
replaceBy.setEnterTransition(slide);
}
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.content_frame, replaceBy, replaceByFragmentTag);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commitAllowingStateLoss();
}
Così, come forzare frammento di pop torna solo dopo l'animazione rovescio della slitta è finito? Ho notato che l'attività ha il metodo finishAfterTransition() fornito. C'è qualcosa di simile per frgament?
più informazioni transizioni qui: www.androiddesignpatterns.com/2014/12/activity-fragment-content-transitions-in-depth-part2.html – pskink
Aggiunta transizione ritorno separato anche spettacoli lo stesso comportamento. Slide slide = new Slide (Gravity.BOTTOM); slide.setDuration (1000); replaceBy.setEnterTransition (scivolo); \t \t slide = new Slide (Gravity.BOTTOM); slide.setDuration (1000); replaceBy.setReturnTransition (slide); – Ankur
Puoi pubblicare una schermata del comportamento a cui stai assistendo (è difficile dire esattamente cosa stai descrivendo). Android Studio ha uno strumento di cattura dello schermo che potrebbe essere utile. –