2017-05-24 3 views
2

A this part d'une conversation donnée à Google I/O 2017, l'orateur introduit une nouvelle API pour setReorderingAllowed() qui peut être appelée sur un FragmentTransaction.Quand setReorderingAllowed() doit-il être appelé sur un FragmentTransaction?

L'orateur explique:

Il permet à tous l'exécution se produise à la fois sans changer votre état de fragment, puis à la fin nous élevons tous les fragments qui doivent être élevés et abattre tous les fragments qui ont besoin d'être démolis ... donc nous pouvons optimiser cela pour vous.

Et montre l'exemple de code suivant:

fragmentManager.beginTransaction() 
    .replace(R.id.container, fragment1) 
    .addToBackStack("state1") 
    .setReorderingAllowed(true) 
    .commit(); 

fragmentManager.beginTransaction() 
    .replace(R.id.container, fragment2) 
    .addToBackStack("state2") 
    .setReorderingAllowed(true) 
    .commit(); 

Ne serait-commettre le FragmentTransaction de toute optimisation séparément infirment que .setReorderingAllowed(true) vous donne parce qu'ils se produisent séparément?

Comme il s'agit d'une API récemment annoncée, il semble qu'il n'y ait pas de documentation actuellement disponible.

+0

La méthode 'setAllowOptimization' a été abandonnée au niveau de l'API 26.0.0-beta2 et a été renommée' setReorderingAllowed (boolean) '. [Documentation] (https://developer.android.com/reference/android/support/v4/app/FragmentTransaction.html#setReorderingAllowed (boolean)) est également disponible maintenant. –

Répondre

2

Je crois que la méthode qu'ils mentionnent existe déjà depuis la bibliothèque de support 25.1.0 mais est actuellement appelée setAllowOptimization(true). Le documentation indique clairement «l'optimisation des opérations dans et entre les transactions», de sorte qu'il optimisera les transactions distinctes.