Fragment
| Dernière mise à jour | Version stable | Version finale | Version bêta | Version alpha | 
|---|---|---|---|---|
| 13 août 2025 | 1.8.9 | - | - | - | 
Déclarer des dépendances
Pour ajouter une dépendance à Fragment, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.
Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou de votre module :
Groovy
dependencies { def fragment_version = "1.8.9" // Java language implementation implementation "androidx.fragment:fragment:$fragment_version" // Kotlin implementation "androidx.fragment:fragment-ktx:$fragment_version" // Compose implementation "androidx.fragment:fragment-compose:$fragment_version" // Testing Fragments in Isolation debugImplementation "androidx.fragment:fragment-testing-manifest:$fragment_version" androidTestImplementation "androidx.fragment:fragment-testing:$fragment_version" }
Kotlin
dependencies { val fragment_version = "1.8.9" // Java language implementation implementation("androidx.fragment:fragment:$fragment_version") // Kotlin implementation("androidx.fragment:fragment-ktx:$fragment_version") // Compose implementation("androidx.fragment:fragment-compose:$fragment_version") // Testing Fragments in Isolation debugImplementation("androidx.fragment:fragment-testing:$fragment_version") }
Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.
Commentaires
Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.
Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.
Version 1.8
Version 1.8.9
13 août 2025
Publication d'androidx.fragment:fragment-*:1.8.9. La version 1.8.9 contient ces commits.
Correction de bugs
- Correction d'un problème qui empêchait l'animation du geste suivant de s'afficher correctement lors de l'utilisation d'animateurs, lorsqu'un geste de retour prédictif annulant une opération de masquage était effectué. (I0a400, b/384765586)
- Correction d'une erreur qui empêchait une combinaison de setMaxLifecycleetpopBackStackde déplacer le fragment supérieur vers RESUMED. (I3448b, b/406127576)
Version 1.8.8
4 juin 2025
Publication d'androidx.fragment:fragment-*:1.8.8. La version 1.8.8 contient ces commits.
Correction de bugs
- Correction d'un problème de plantage de FragmentManagerlors de l'enregistrement de l'état des fragments ajoutés avecsetMaxLifecycle(Lifecycle.State.INITIALIZED). Ces fragments, puisqu'ils n'ont jamais été soumis àonCreate(), n'ont plus d'état enregistré ni deonSaveInstanceState()appelé. (I6e37a)
Version 1.8.7
20 mai 2025
Publication d'androidx.fragment:fragment-*:1.8.7. La version 1.8.7 contient ces commits.
Correction de bugs
- Correction d'un problème lié à l'état incorrect de FragmentManageraprès des opérations pop et replace dans le même frame, ce qui pouvait entraîner un plantage lors de la suppression de la pile de retour viapopBackStackou le geste de retour prédictif. (I50ad1)
- Correction d'un plantage causé par l'utilisation de Transitions AndroidX et par le fait de se retrouver dans un cas où des transactions de fragment consécutives rapides tentent d'annuler une transition non démarrée et où la bibliothèque Transitions AndroidX n'efface pas correctement l'état de la transition. (voir b/414612221). (Ib5235)
Version 1.8.6
12 février 2025
Publication d'androidx.fragment:fragment-*:1.8.6. La version 1.8.6 contient ces commits.
Correction de bugs
- La substitution setOnApplyWindowInsetsListenerdeFragmentContainerViewaccepte désormais un écouteur null, ce qui correspond à ce que permet le framework. (I575f0, b/282790626)
Version 1.8.5
30 octobre 2024
Publication d'androidx.fragment:fragment-*:1.8.5. La version 1.8.5 contient ces commits.
Correction de bugs
- Correction d'un IllegalStateExceptiondéclenché parsaveBackStackuniquement après l'annulation ou l'interruption d'un geste de prévisualisation du Retour. (I3387d, b/342419080)
Version 1.8.4
2 octobre 2024
Publication d'androidx.fragment:fragment-*:1.8.4. La version 1.8.4 contient ces commits.
Correction de bugs
- Correction d'un problème qui entraînait le plantage des fragments lors de l'utilisation des transitions AndroidX lorsque l'utilisateur appuyait rapidement sur le bouton Retour du système ou effectuait rapidement le geste Retour. (Ibc038, b/364804225)
- Correction d'un problème dans les fragments où l'interruption d'un geste de retour prédictif envoyait le gestionnaire de fragments dans un état indéfini et affichait même le mauvais fragment. (If82e2, b/338624457)
- Correction d'une UninitializedPropertyAccessExceptiondansAndroidFragmentlors du remplacement dynamique de la classe utilisée par votre instanceAndroidFragment. (I12dea)
Version 1.8.3
4 septembre 2024
Publication d'androidx.fragment:fragment-*:1.8.3. La version 1.8.3 contient ces commits.
Correction de bugs
- FragmentManagerprend désormais correctement en compte les opérations en attente lors de la gestion du geste de prévisualisation du Retour. Cela devrait garantir que l'exécution d'un retour système ne provoque plus d'- IndexOutOfBoundsException. (I9ba32, b/342316801)
- AndroidFragmentne plante plus s'il est ajouté à la composition alors que l'état de l'activité/du fragment contenant est déjà enregistré. (I985e9, b/356643968)
Version 1.8.2
24 juillet 2024
Publication d'androidx.fragment:fragment-*:1.8.2. La version 1.8.2 contient ces commits.
Correction de bugs
- AndroidFragmentgère désormais correctement les cas où le fragment parent est placé dans la pile "Retour" des fragments, ce qui évite les problèmes de type "No view found for id" (Aucune vue trouvée pour l'ID) lorsque vous revenez à ce fragment. (I94608)
- Les fragments ajoutés via la méthode FragmentTransaction.addqui utilise unViewGroupattendent désormaisonContainerAvailableavant de passer àonStart(). Cela affecte les utilisateurs de cette API, commeAndroidFragment, qui attend désormais queAndroidFragmentréintègre la composition avant de le déplacer dansonStart(). (I94608)
Version 1.8.1
26 juin 2024
Publication d'androidx.fragment:fragment-*:1.8.1. La version 1.8.1 contient ces commits.
Correction de bugs
- Correction d'un problème pour lequel les fragments sans conteneur étaient immédiatement DESTROYEDlors du démarrage d'un geste Retour prédictif. Ils sont désormais maintenus dans l'étatCREATEDjusqu'à la fin du geste. (If6b83, b/345244539)
Version 1.8.0
12 juin 2024
Publication d'androidx.fragment:fragment-*:1.8.0. La version 1.8.0 contient ces commits.
Changements importants depuis la version 1.7.0
- L'artefact fragment-composecontient désormais unComposableAndroidFragmentqui permet d'ajouter des fragments à la hiérarchie Compose via le nom de classe du fragment. Il gère automatiquement l'enregistrement et la restauration de l'état du fragment. Cette méthode doit être utilisée en remplacement direct de l'approche précédemment recommandée, qui consistait à utiliserAndroidViewBindingpour gonfler un fragment.
- Le rappel onBackStackChangeCancelledsur l'interfaceOnBackStackChangedListenerdeFragmentManagerse déclenche désormais lors de l'exécution des opérations dansFragmentManager, ce qui le rapproche du timing du rappelonBackStackChangeCommitted.
Version 1.8.0-rc01
29 mai 2024
Publication d'androidx.fragment:fragment-*:1.8.0-rc01. La version 1.8.0-rc01 contient ces commits.
Correction de bugs
- Le rappel onBackStackChangeCancelledsur l'interfaceFragmentManagers OnBackStackChangedListenerse déclenche désormais lors de l'exécution d'opérations dansFragmentManager, ce qui le rapproche du timing du rappelonBackStackChangeCommitted. (I5ebfb, b/332916112)
Version 1.8.0-beta01
14 mai 2024
Publication d'androidx.fragment:fragment-*:1.8.0-beta01. La version 1.8.0-beta01 contient ces commits.
Correction de bugs
- Depuis Fragment 1.7.1: la prévisualisation du Retour ne s'exécute désormais que pour les transactions dans lesquelles tous les fragments ont un Animator ou une transition AndroidX pouvant être recherchée. Correction d'un problème qui entraînait l'affichage d'un écran noir lors de l'annulation d'une transaction partiellement consultable. (I43037, b/339169168)
Version 1.8.0-alpha02
17 avril 2024
Publication d'androidx.fragment:fragment-*:1.8.0-alpha02. La version 1.8.0-alpha02 contient ces commits.
Correction de bugs
- Depuis Fragment 1.7.0-rc02: ajout de journaux pour indiquer pourquoi la définition d'unsharedElementsans autre transition ne s'exécutera pas. (Iec48e)
- Depuis Fragment 1.7.0-rc02: correction d'un bug qui entraînait un plantage lorsqu'un élément partagé non séquentiel était ajouté à des transactions où toutes les autres transitions étaient séquentielles. La transaction sera désormais correctement considérée comme non consultable. (I18ccd)
Version 1.8.0-alpha01
3 avril 2024
Publication d'androidx.fragment:fragment-*:1.8.0-alpha01. La version 1.8.0-alpha01 contient ces commits.
Nouvelles fonctionnalités
- Le nouveau AndroidFragmentComposablepermet d'ajouter des fragments dans la hiérarchie Compose via le nom de classe du fragment. Il gère automatiquement l'enregistrement et la restauration de l'état du fragment. Il peut être utilisé en remplacement direct deComposableAndroidViewBinding.(b/312895363, Icf841)
Modifications de la documentation
- Mise à jour de la documentation pour les API OnBackStackChangedListenerafin d'indiquer quand elles sont appelées et comment elles doivent être utilisées. (I0bfd9)
Mise à jour de la dépendance
- Fragment dépend désormais de Profile Installer 1.3.1.
Version 1.7
Version 1.7.1
14 mai 2024
Publication d'androidx.fragment:fragment-*:1.7.1. La version 1.7.1 contient ces commits.
Correction de bugs
- La prévisualisation du Retour ne s'exécutera désormais que pour les transactions dans lesquelles tous les fragments ont un Animator ou une transition Androidx pouvant être recherchée. Correction d'un problème qui entraînait l'affichage d'un écran vide lors de l'annulation d'une transaction partiellement consultable. (I43037, b/339169168)
Version 1.7.0
1er mai 2024
Publication d'androidx.fragment:fragment-*:1.7.0. La version 1.7.0 contient ces commits.
Prise en charge de la prévisualisation du geste Retour
- Les fragments sont désormais compatibles avec la prévisualisation du Retour dans l'application lorsque vous utilisez Animatorou AndroidX Transition 1.5.0. Cela permet aux utilisateurs d'utiliser le geste Retour pour voir le fragment précédent en recherchant votre Animator/Transition avant de décider de valider la transaction en terminant le geste ou de l'annuler.
| Système de transition | Ressource XML | Prise en charge de la prévisualisation du Retour | 
|---|---|---|
| Animation | R.anim | Non | 
| Animator | R.animator | Oui | 
| Framework Transition | R.transition | Non | 
| AndroidX Transitionavec Transition 1.4.1 ou version antérieure | R.transition | Non | 
| AndroidX Transitionavec Transition 1.5.0 | R.transition | Oui | 
Si vous rencontrez des problèmes avec la prévisualisation du Retour dans les Fragments après avoir activé le geste Retour prédictif, veuillez signaler un problème concernant Fragment en fournissant un exemple de projet qui reproduit votre problème. Vous pouvez désactiver la prévisualisation du retour en arrière en utilisant FragmentManager.enabledPredictiveBack(false) dans le onCreate() de votre activité.
FragmentManager.OnBackStackChangedListener() fournit désormais onBackStackChangeProgressed() et onBackStackChangeCancelled() pour recevoir respectivement la progression de la prévisualisation du Retour et les événements annulés.
Artefact Fragment Compose
Un nouvel artefact fragment-compose a été créé pour aider les applications qui sont en train de passer d'une architecture basée sur des fragments à une architecture entièrement basée sur Compose.
La première fonctionnalité disponible dans ce nouvel artefact est une méthode d'extension content sur Fragment qui vise à faciliter l'utilisation de Compose pour l'UI d'un Fragment individuel en créant un ComposeView pour vous et en définissant le ViewCompositionStrategy approprié.
  class ExampleFragment : Fragment() {
      override fun onCreateView(
          inflater: LayoutInflater,
          container: ViewGroup?,
          savedInstanceState: Bundle?
      ) = content {
          // Write your @Composable content here
          val viewModel: ExampleViewModel = viewModel()
          // or extract it into a separate, testable method
          ExampleComposable(viewModel)
      }
  }
Version 1.7.0-rc02
17 avril 2024
Publication d'androidx.fragment:fragment-*:1.7.0-rc02. La version 1.7.0-rc02 contient ces commits.
Correction de bugs
- Ajout de journaux pour indiquer pourquoi la définition d'un sharedElementsans aucune autre transition ne s'exécutera pas. (Iec48e)
- Correction d'un bug qui entraînait un plantage lorsqu'un élément partagé non séquentiel était ajouté à une transaction dont toutes les autres transitions étaient séquentielles. La transaction sera désormais correctement considérée comme non consultable. (I18ccd)
Version 1.7.0-rc01
3 avril 2024
Publication d'androidx.fragment:fragment-*:1.7.0-rc01. La version 1.7.0-rc01 contient ces commits.
Mise à jour de la dépendance
- Fragment dépend désormais de Profile Installer 1.3.1.
Version 1.7.0-beta01
20 mars 2024
Publication d'androidx.fragment:fragment-*:1.7.0-beta01. La version 1.7.0-beta01 contient ces commits.
Modifications apportées à l'API
- FragmentHostCallbackest désormais écrit en Kotlin afin que la possibilité de valeur nulle du type générique de l'hôte corresponde à la possibilité de valeur nulle du type de retour de- onGetHost(). (I40af5)
Correction de bugs
- Correction d'un problème pour lequel, lors de la validation d'un geste de prévisualisation du Retour sur un fragment qui ne se trouve pas dans un conteneur, ce fragment n'était jamais détruit. Le fragment est alors immédiatement déplacé vers l'état final. (Ida0d9)
- Correction d'un problème dans les fragments où l'interruption des transitions entrantes avec un geste de Retour prédictif détruisait la vue entrante et laissait un écran vide. (Id3f22, b/319531491)
Version 1.7.0-alpha10
7 février 2024
Publication d'androidx.fragment:fragment-*:1.7.0-alpha10. Liste des commits de la version 1.7.0-alpha10
Correction de bugs
- Correction du problème connu dans la version précédente de Fragment, où l'utilisation de la prise en charge de la prévisualisation du Retour de Fragment pour Animatorou AndroidX Transition entraînait l'affichage d'uneNullPointerExceptionà partir dehandleOnBackProgressedsi aucunFragmentManager.OnBackStackChangedListenern'avait jamais été ajouté viaaddOnBackStackChangedListener. (I7c835)
Version 1.7.0-alpha09
24 janvier 2024
Publication d'androidx.fragment:fragment-*:1.7.0-alpha09. Liste des commits de la version 1.7.0-alpha09
Artefact Fragment Compose
Un nouvel artefact fragment-compose a été créé pour aider les applications qui sont en train de passer d'une architecture basée sur des fragments à une architecture entièrement basée sur Compose.
La première fonctionnalité disponible dans ce nouvel artefact est une méthode d'extension content sur Fragment qui vise à faciliter l'utilisation de Compose pour l'UI d'un Fragment individuel en créant un ComposeView pour vous et en définissant le ViewCompositionStrategy approprié. (561cb7, b/258046948)
class ExampleFragment : Fragment() {
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ) = content {
        // Write your @Composable content here
        val viewModel: ExampleViewModel = viewModel()
        // or extract it into a separate, testable method
        ExampleComposable(viewModel)
    }
}
Nouvelles fonctionnalités
- FragmentManager.OnBackStackChangedListener()fournit désormais- onBackStackChangeProgressed()et- onBackStackChangeCancelled()pour recevoir respectivement la progression de la prévisualisation du Retour et les événements annulés. (214b87)
Problème connu
- Lorsque vous utilisez la prise en charge de la prévisualisation du Retour pour Animatorou AndroidX Transition, les fragments génèrent uneNullPointerExceptionà partir dehandleOnBackProgressedsi aucunFragmentManager.OnBackStackChangedListenern'a jamais été ajouté viaaddOnBackStackChangedListener. L'ajout manuel d'un écouteur permet de contourner le plantage. Un correctif sera disponible dans la prochaine version de Fragments.
Version 1.7.0-alpha08
10 janvier 2024
Publication d'androidx.fragment:fragment-*:1.7.0-alpha08. Liste des commits de la version 1.7.0-alpha08
Nettoyage
- Suppression de la solution de contournement pour la bibliothèque de transition, qui a été corrigée dans Transition 1.5.0-alpha06. (I04356)
Version 1.7.0-alpha07
29 novembre 2023
Publication d'androidx.fragment:fragment-*:1.7.0-alpha07. Liste des commits de la version 1.7.0-alpha07
Correction de bugs
- Correction d'une NullPointerExceptioncausée par la définition d'une transition d'élément partagé sans définir de transition d'entrée/sortie. (I8472b)
- Depuis Fragment 1.6.2: lorsque le Fragment d'unFragmentContainerViewest gonflé, ses états tels queFragmentManager, Host et l'ID sont désormais accessibles dans le rappelonInflate. (I1e44c, b/307427423)
- Depuis Fragment 1.6.2: lorsque vous utilisezclearBackStackpour supprimer un ensemble de fragments, leViewModelde tout fragment imbriqué est désormais effacé lorsque lesViewModelsdu fragment parent sont effacés. (I6d83c, b/296173018)
Version 1.7.0-alpha06
4 octobre 2023
Publication d'androidx.fragment:fragment-*:1.7.0-alpha06. Liste des commits de la version 1.7.0-alpha06
Mise à jour de la dépendance
- Les fragments ont été mis à jour pour dépendre de la nouvelle API animateToStartajoutée dans Transition1.5.0-alpha04.
Version 1.7.0-alpha05
20 septembre 2023
Publication d'androidx.fragment:fragment-*:1.7.0-alpha05. Liste des commits de la version 1.7.0-alpha05
Nouvelles fonctionnalités
- Les fragments sont désormais compatibles avec la prévisualisation du Retour lorsque vous utilisez AndroidX Transitions. Cela vous permet d'utiliser le geste Retour pour rechercher le fragment précédent avec votre transition AndroidX personnalisée avant de décider de valider ou d'annuler la transaction via le geste terminé. Vous devez dépendre de la version Transition 1.5.0-alpha03pour activer cette fonctionnalité. (Ib49b4, b/285175724)
Problèmes connus
- Un problème se produit actuellement : après avoir annulé un geste Retour avec une transition, la prochaine fois que vous lancerez le geste Retour, la transition ne s'exécutera pas, ce qui entraînera un écran vide. Cela peut être dû à un problème dans la bibliothèque de transition. (b/300157785). Si vous rencontrez ce problème, veuillez signaler un problème concernant Fragment en fournissant un exemple de projet qui reproduit votre problème. Vous pouvez désactiver la prévisualisation du retour en arrière en utilisant FragmentManager.enabledPredictiveBack(false)dans leonCreate()de votre activité.
Version 1.7.0-alpha04
6 septembre 2023
Publication d'androidx.fragment:fragment-*:1.7.0-alpha04. Liste des commits de la version 1.7.0-alpha04
Correction de bugs
- Correction d'un problème lors de l'annulation d'un geste de retour prédictif, où les fragments n'atteignaient pas l'état de cycle de vie correct. (I7cffe, b/297379023)
- Correction d'une régression qui permettait aux animations de s'exécuter avec les transitions. (I59f36)
- Correction d'un problème lié à l'utilisation de la prévisualisation du Retour avec des fragments, où une tentative de retour en arrière deux fois de suite sur l'avant-dernier fragment de la pile "Retour" entraînait un plantage. (Ifa1a4)
Version 1.7.0-alpha03
23 août 2023
Publication d'androidx.fragment:fragment-*:1.7.0-alpha03. Liste des commits de la version 1.7.0-alpha03
Correction de bugs
- Correction d'un problème lié aux fragments lors de l'utilisation de la prévisualisation du Retour, qui entraînait l'ignorance du premier fragment de la pile de retour du gestionnaire de fragments et la fin de l'activité lors de l'utilisation du Retour système via la navigation à trois boutons ou le geste de prévisualisation du Retour. (I0664b, b/295231788)
Version 1.7.0-alpha02
9 août 2023
Publication d'androidx.fragment:fragment-*:1.7.0-alpha02. Liste des commits de la version 1.7.0-alpha02
Correction de bugs
- Lorsque vous utilisez des fragments avec des gestes de prévisualisation du Retour à partir de l'API 34, si vous utilisez un système de transition qui ne prend pas en charge la recherche (Animations,Transitions) ou aucune transition, les fragments attendent désormais la fin du geste avant d'exécuter l'action de retour. (I8100c)
Version 1.7.0-alpha01
7 juin 2023
Publication d'androidx.fragment:fragment-*:1.7.0-alpha01. Cette version est développée dans une branche interne.
Nouvelles fonctionnalités
- Les fragments sont désormais compatibles avec la prévisualisation du Retour dans l'application lorsque vous utilisez Animator. Cela vous permet d'utiliser le geste Retour pour afficher le fragment précédent avec votre Animator personnalisé avant de décider de valider la transaction via le geste terminé ou de l'annuler. Vous pouvez également désactiver ce nouveau comportement en utilisant l'indicateur expérimentalenablePredictiveBack()et en transmettantfalse.
Version 1.6
Version 1.6.2
1er novembre 2023
Publication d'androidx.fragment:fragment-*:1.6.2. Liste des commits de la version 1.6.2
Correction de bugs
- Lorsque le fragment d'un FragmentContainerViewest gonflé, ses états tels queFragmentManager, Host et ID sont désormais accessibles dans le rappelonInflate. (I1e44c, b/307427423)
- Lorsque vous utilisez clearBackStackpour supprimer un ensemble de fragments, leViewModelde tout fragment imbriqué est désormais effacé lorsque leViewModelsdu fragment parent est effacé. (I6d83c, b/296173018)
Version 1.6.1
26 juillet 2023
Publication d'androidx.fragment:fragment-*:1.6.1. Liste des commits de la version 1.6.1
Correction de bugs
- Correction d'un problème pour lequel l'état enregistré stocké lorsque l'activité était arrêtée, mais non détruite, était mis en cache de manière incorrecte, même après que l'instance de fragment a été replacée dans l'état RESUMED. Cela entraînerait la réutilisation de cet état mis en cache si cette instance de fragment se trouvait dans la pile "Retour" lors de l'utilisation de l'API à piles "Retour" multiples pour enregistrer et restaurer ce fragment. (I71288, b/246289075)
Mise à jour de la dépendance
- Fragment dépend désormais d'Activity 1.7.2. Ce problème empêchait les utilisateurs de Kotlin d'étendre ComponentDialogsans dépendance explicite sur Activity. (b/287509323)
Version 1.6.0
7 juin 2023
Publication d'androidx.fragment:fragment-*:1.6.0. Liste des commits de la version 1.6.0
Changements importants depuis la version 1.5.0
- L'état enregistré de Fragments a été entièrement réparti entre l'état de la bibliothèque privée (classesParcelablepersonnalisées) et l'état fourni par le développeur, qui est maintenant toujours stocké dans unBundlequi permet de déterminer exactement l'origine de l'état d'un fragment.
- L'interface FragmentManager.OnBackStackChangedListenera été étendue avec deux rappels supplémentaires deonBackStackChangeStartedetonBackStackChangeCommittedqui sont appelés avec chaqueFragmentjuste avant d'être ajoutés/supprimés de la pile "Retour" du fragment et juste après la validation de la transaction, respectivement.
- FragmentStrictModea ajouté une vérification- WrongNestedHierarchyViolationqui détecte lorsqu'un fragment enfant est imbriqué dans la hiérarchie des vues de son parent, mais n'est pas ajouté au- childFragmentManagerde celui-ci.
- Les API FragmentetFragmentManagerqui acceptent unIntentouIntentSendersont désormais correctement annotées avec@NonNullpour éviter de transmettre une valeur nulle, car celle-ci ferait toujours planter immédiatement les API respectives du framework Android que ces méthodes appellent.
- DialogFragmentpermet désormais d'accéder à- ComponentDialogsous-jacent via l'API- requireComponentDialog().
- Fragment dépend désormais de Lifecycle 2.6.1.
- Fragment dépend désormais de SavedState 1.2.1.
- Fragment dépend désormais de ProfileInstaller 1.3.0.
- L'artefact - fragment-testing-manifestsépare les entrées du fichier manifeste des autres composants de fragment-testing. Vous pouvez ainsi effectuer les opérations suivantes :- debugImplementation("androidx.fragment:fragment-testing-manifest:X.Y.Z") androidTestImplementation("androidx.fragment:fragment-testing:X.Y.Z")- Cela permet d'éviter les conflits dus au décalage de version entre - fragment-testinget- androidx.test.
Version 1.6.0-rc01
10 mai 2023
Publication d'androidx.fragment:fragment-*:1.6.0-rc01. Liste des commits de la version 1.6.0-rc01
Correction de bugs
- Correction d'un problème qui entraînait l'envoi de ActivityResultavec le mauvais code de requête lorsque plusieurs requêtesstartActivityForResultétaient effectuées consécutivement. (If0b9d, b/249519359)
- Correction d'un problème qui entraînait l'envoi des rappels onBackStackChangeListenerpour les transactions qui ne modifiaient pas réellement la pile "Retour" si elles étaient combinées à des transactions qui la modifiaient. (I0eb5c, b/279306628)
Version 1.6.0-beta01
19 avril 2023
Publication d'androidx.fragment:fragment-*:1.6.0-beta01. Liste des commits de la version 1.6.0-beta01
Correction de bugs
- L'utilisation de postponeEnterTransitionavec un délai d'attente, puis le remplacement du fragment reporté n'entraîne plus la fuite du fragment reporté. (I2ec7d, b/276375110)
- Les nouveaux rappels onBackStackChangeStartedetonBackStackChangeCommittedne distribueront désormais un fragment qu'une seule fois, même si plusieurs transactions contiennent le même fragment. (Ic6b69)
Version 1.6.0-alpha09
5 avril 2023
Publication d'androidx.fragment:fragment-*:1.6.0-alpha09. Liste des commits de la version 1.6.0-alpha09
Modifications apportées à l'API
- DialogFragmentpermet désormais d'accéder à- ComponentDialogsous-jacent via l'API- requireComponentDialog(). (I022e3, b/234274777)
- Les API de fragment commitNow(),executePendingTransactions()etpopBackStackImmediate()ont été annotées avec@MainThread, ce qui signifie qu'elles généreront désormais toutes des erreurs de compilation lorsqu'elles ne seront pas appelées à partir du thread principal au lieu d'attendre d'échouer au moment de l'exécution. (Ic9665, b/236538905)
Correction de bugs
- Correction d'un bug dans FragmentManageroù l'enregistrement et la restauration dans le même frame pouvaient entraîner un plantage. (Ib36af, b/246519668)
- Les rappels OnBackStackChangedListeneronBackStackChangeStartedetonBackStackChangeCommittedne s'exécutent désormais que lorsque la pile "Retour"FragmentManagerest modifiée. (I66055, b/274788957)
Version 1.6.0-alpha08
22 mars 2023
Publication d'androidx.fragment:fragment-*:1.6.0-alpha08. Liste des commits de la version 1.6.0-alpha08
Nouveau comportement
- Le timing du rappel OnBackStackChangedListener.onBackStackChangeCommiteda été ajusté pour s'exécuter avant les opérations de fragment. Cela permet de s'assurer que le rappel ne reçoit jamais de fragment détaché. (I66a76, b/273568280)
Correction de bugs
- Depuis Fragment 1.5.6: correction d'un problème pour lequel l'appel declearFragmentResultListenerà l'intérieur d'unsetFragmentResultListenerne fonctionnait pas si leLifecycleétait déjàSTARTEDet qu'un résultat était déjà disponible. (If7458)
Mises à jour des dépendances
- Fragment dépend désormais de Lifecycle 2.6.1. (586fe7)
- Fragment dépend désormais de SavedState 1.2.1. (078e4e)
- Fragment dépend désormais de ProfileInstaller 1.3.0. (3fc05b)
Version 1.6.0-alpha07
8 mars 2023
Publication d'androidx.fragment:fragment-*:1.6.0-alpha07. Liste des commits de la version 1.6.0-alpha07
Correction de bugs
- Depuis Fragment 1.5.6: correction d'un problème qui invalidait le menu de l'activité lors de la suppression d'un fragment, qu'il ait ajouté des éléments de menu ou non. (50f098, b/244336571)
Version 1.6.0-alpha06
22 février 2023
Publication d'androidx.fragment:fragment-*:1.6.0-alpha06. Liste des commits de la version 1.6.0-alpha06
Nouveau comportement
- Le nouveau rappel onBackStackChangedStartedsur l'onBackStackChangedListenerdeFragmentManagerest désormais exécuté avant que les fragments ne commencent à atteindre leurs états cibles. (I34726)
Version 1.6.0-alpha05
8 février 2023
Publication d'androidx.fragment:fragment-*:1.6.0-alpha05. Liste des commits de la version 1.6.0-alpha05
Nouvelles fonctionnalités
- L'interface FragmentManager.OnBackStackChagnedListenerpropose désormais deux autres rappels,onBackStackChangeStartedetonBackStackChangeCommitted, qui permettent de disposer d'informations supplémentaires et de contrôler le moment où les modifications de la pile "Retour" se produisent dans leFragmentManager. (Ib7ce5, b/238686802)
Modifications apportées à l'API
- Les API FragmentetFragmentManagerqui acceptent unIntentouIntentSendersont désormais correctement annotées avec@NonNullpour éviter de transmettre une valeur nulle, car celle-ci ferait toujours planter immédiatement les API respectives du framework Android que ces méthodes appellent. (I06fd4)
Version 1.6.0-alpha04
7 décembre 2022
Publication d'androidx.fragment:fragment-*:1.6.0-alpha04. Liste des commits de la version 1.6.0-alpha04
Nouvelles fonctionnalités
- FragmentStrictModea ajouté une vérification- WrongNestedHierarchyViolationqui détecte lorsqu'un fragment enfant est imbriqué dans la hiérarchie des vues de son parent, mais n'est pas ajouté au- childFragmentManagerde celui-ci. (I72521, b/249299268)
Nouveaux comportements
- Les fragments restaurent désormais l'état SavedStateRegistryavantonAttach(), ce qui permet de garantir qu'il est disponible à partir de toutes les méthodes du cycle de vie en amont. (I1e2b1)
Modifications apportées à l'API
- L'artefact fragment-testing-manifestsépare les entrées du fichier manifeste des autres composants de fragment-testing. Vous pouvez ainsi effectuer les opérations suivantes :
debugImplementation("androidx.fragment:fragment-testing-manifest:X.Y.Z")
androidTestImplementation("androidx.fragment:fragment-testing:X.Y.Z")
Cela permet d'éviter les conflits dus au décalage de version entre fragment-testing et androidx.test.(I8e534, b/128612536) 
Correction de bugs
- Dans Fragment 1.5.5: les fragments n'enregistrent plus de manière incorrecte l'étatViewModelcomme faisant partie de l'état enregistré du registre de la vue. (I10d2b, b/253546214)
Version 1.6.0-alpha03
5 octobre 2022
Publication d'androidx.fragment:fragment:1.6.0-alpha03, androidx.fragment:fragment-ktx:1.6.0-alpha03 et androidx.fragment:fragment-testing:1.6.0-alpha03. Liste des commits de la version 1.6.0-alpha03
Modifications apportées à l'API
- Les classes qui étendent DialogFragmentdevront désormais appeler la fonction Super dans les remplacements de la méthodeonDismiss(). (I14798, b/238928865)
Correction de bugs
- Correction des régressions causées par l'intégration des nouvelles interfaces de rappel de fournisseur (OnConfigurationChangedProvider,OnMultiWindowModeChangedProvider,OnTrimMemoryProvider,OnPictureInPictureModeChangedProvider) afin de garantir que les fragments reçoivent toujours les rappels appropriés. (I9b380,I34581, [I8dfe6, b/242570955],If9d6b,Id0096,I690b3,I2cba2)
Version 1.6.0-alpha02
24 août 2022
Publication d'androidx.fragment:fragment:1.6.0-alpha02, androidx.fragment:fragment-ktx:1.6.0-alpha02 et androidx.fragment:fragment-testing:1.6.0-alpha02. Liste des commits de la version 1.6.0-alpha02
Corrections de bugs
- Depuis Fragment 1.5.2: correction d'un problème pour lequel l'exécution simultanée d'une transactionpopBackStack()etreplace()pouvait entraîner l'exécution du mauvaisAnimation/Animatorpar les fragments sortants. (Ib1c07, b/214835303)
Version 1.6.0-alpha01
27 juillet 2022
Publication d'androidx.fragment:fragment:1.6.0-alpha01, androidx.fragment:fragment-ktx:1.6.0-alpha01 et androidx.fragment:fragment-testing:1.6.0-alpha01. Liste des commits de la version 1.6.0-alpha01
Nouveaux comportements
- L'état enregistré de Fragments a été entièrement réparti entre l'état de la bibliothèque privée (classesParcelablepersonnalisées) et l'état fourni par le développeur, qui est maintenant toujours stocké dans unBundlequi permet de déterminer exactement l'origine de l'état d'un fragment. (b/207158202)
Corrections de bugs
- Depuis Fragment 1.5.1: correction d'une régression dans leDialogFragmentCallbacksDetectoroù l'utilisation de la version de lint fournie avec AGP 7.4 entraînait le plantage de lint. (b/237567009)
Mise à jour de la dépendance
- Depuis Fragment 1.5.1: la bibliothèque Fragment dépend désormais de Lifecycle2.5.1. (Id204c)
- Depuis Fragment 1.5.1: la bibliothèque Fragment dépend désormais d'Activity1.5.1. (I10f07)
Version 1.5
Version 1.5.7
19 avril 2023
Publication d'androidx.fragment:fragment:1.5.7, androidx.fragment:fragment-ktx:1.5.7 et androidx.fragment:fragment-testing:1.5.7. Liste des commits de la version 1.5.7
Correction de bugs
- L'utilisation de postponeEnterTransitionavec un délai d'attente, puis le remplacement du fragment reporté n'entraîne plus la fuite du fragment reporté. (I2ec7d, b/276375110)
Version 1.5.6
22 mars 2023
Publication d'androidx.fragment:fragment:1.5.6, androidx.fragment:fragment-ktx:1.5.6 et androidx.fragment:fragment-testing:1.5.6. Liste des commits de la version 1.5.6
Correction de bugs
- Correction d'un problème qui entraînait l'invalidation du menu de l'activité lors de la suppression d'un fragment, qu'il ait ajouté des éléments de menu ou non. (50f098, b/244336571)
- Correction d'un problème qui empêchait l'appel de clearFragmentResultListenerdans unsetFragmentResultListenersi leLifecycleétait déjàSTARTEDet qu'un résultat était déjà disponible. (If7458)
Version 1.5.5
7 décembre 2022
Publication d'androidx.fragment:fragment:1.5.5, androidx.fragment:fragment-ktx:1.5.5 et androidx.fragment:fragment-testing:1.5.5. Liste des commits de la version 1.5.5
Correction de bugs
- Les fragments n'enregistrent plus l'état ViewModelde manière incorrecte dans le registre d'affichage enregistré. (I10d2b, b/253546214)
Version 1.5.4
24 octobre 2022
Publication d'androidx.fragment:fragment:1.5.4, androidx.fragment:fragment-ktx:1.5.4 et androidx.fragment:fragment-testing:1.5.4. Liste des commits de la version 1.5.4
Correction de bugs
- Correction d'une erreur où le fait d'utiliser un FragmentControllerpersonnalisé avec un hôte qui n'implémente pas une interface de rappel de fournisseur (OnConfigurationChangedProvider,OnMultiWindowModeChangedProvider,OnTrimMemoryProvider,OnPictureInPictureModeChangedProvider) et d'appeler sa fonction d'envoi obsolète ne permettait pas d'envoyer les fragments enfants. (I9b380)
Version 1.5.3
21 septembre 2022
Publication d'androidx.fragment:fragment:1.5.3, androidx.fragment:fragment-ktx:1.5.3 et androidx.fragment:fragment-testing:1.5.3. Liste des commits de la version 1.5.3
Correction de bugs
- Correction d'une erreur qui générait des rappels onMultiWindowModeChanged(),onPictureInPictureModeChanged(),onLowMemory()etonConfigurationChanged()pour les fragments de la pile "Retour". (I34581, I8dfe6, b/242570955)
- Les fragments enfants imbriqués ne recevront plus plusieurs rappels onMultiWindowModeChanged(),onPictureInPictureModeChanged(),onLowMemory()ouonConfigurationChanged(). (I690b3, Id0096, If9d6b, I2cba2)
Version 1.5.2
10 août 2022
Publication d'androidx.fragment:fragment:1.5.2, androidx.fragment:fragment-ktx:1.5.2 et androidx.fragment:fragment-testing:1.5.2. Liste des commits de la version 1.5.2
Corrections de bugs
- Correction d'un problème pour lequel l'exécution simultanée d'une transaction popBackStack()etreplace()pouvait entraîner l'exécution du mauvaisAnimation/Animatorpar les fragments sortants. (Ib1c07, b/214835303)
Version 1.5.1
27 juillet 2022
Publication d'androidx.fragment:fragment:1.5.1, androidx.fragment:fragment-ktx:1.5.1 et androidx.fragment:fragment-testing:1.5.1. Liste des commits de la version 1.5.1
Corrections de bugs
- Correction d'une régression dans le DialogFragmentCallbacksDetectoroù l'utilisation de la version lint fournie avec AGP 7.4 entraînait le plantage de lint. (b/237567009)
Mise à jour de la dépendance
- La bibliothèque Fragment dépend désormais de Lifecycle 2.5.1. (Id204c)
- La bibliothèque Fragment dépend désormais d'Activity 1.5.1. (I10f07)
Version 1.5.0
29 juin 2022
Publication d'androidx.fragment:fragment:1.5.0, androidx.fragment:fragment-ktx:1.5.0 et androidx.fragment:fragment-testing:1.5.0. Liste des commits de la version 1.5.0
Changements importants depuis la version 1.4.0
- Intégration de CreationExtras : Fragmentpeut désormais fournir unViewModelProvider.Factorysans état viaCreationExtrasde Lifecycle2.5.0.
- Intégration des boîtes de dialogue de composants : DialogFragmentutilise désormaisComponentDialogvia Activity1.5.0comme boîte de dialogue par défaut renvoyée paronCreateDialog().
- Refactorisation de l'état d'instance enregistré : les fragments ont commencé à modifier la façon dont ils enregistrent l'état de leur instance. Cela permet d'identifier clairement l'état qui a été enregistré dans le fragment et la source de l'état. Voici certains des changements apportés :
- FragmentManagerenregistre désormais son état d'instance enregistré dans- Bundleau lieu de passer directement par un- Parcelablepersonnalisé.
- Les résultats qui ont été définis via les Fragment Result APIset qui n'ont pas encore été livrés sont maintenant enregistrés séparément de l'état interne deFragmentManager.
- L'état associé à chaque fragment individuel est désormais enregistré séparément de l'état interne de FragmentManager, ce qui vous permet de corréler la quantité d'états enregistrés associés à un fragment individuel avec les ID uniques présents dans le journal de débogage deFragment.
 
Autres changements
- FragmentStrictModepermet désormais aux fragments tiers privés de contourner des pénalités de violation spécifiques en utilisant- allowViolation()avec le nom de classe.
- Les API Fragment permettant de fournir un menu à l'ActionBarde votre activité ont été abandonnées. Les APIMenuHostetMenuProviderajoutées dans Activity1.4.0fournissent une surface d'API équivalente, compatible avec le cycle de vie et testable, que les fragments doivent utiliser.
Version 1.5.0-rc01
11 mai 2022
Publication d'androidx.fragment:fragment:1.5.0-rc01, androidx.fragment:fragment-ktx:1.5.0-rc01 et androidx.fragment:fragment-testing:1.5.0-rc01. Liste des commits de la version 1.5.0-rc01
Refactorisation de l'état d'instance enregistré
- L'état associé à chaque fragment individuel est désormais enregistré séparément de l'état interne de FragmentManager, ce qui vous permet de corréler la quantité d'états enregistrés associés à un fragment individuel avec les ID uniques présents dans le journal de débogage de Fragment. (a153e0, b/207158202)
Version 1.5.0-beta01
20 avril 2022
Publication d'androidx.fragment:fragment:1.5.0-beta01, androidx.fragment:fragment-ktx:1.5.0-beta01 et androidx.fragment:fragment-testing:1.5.0-beta01. Liste des commits de la version 1.5.0-beta01
Modifications apportées à l'API
- DialogFragmenta ajouté une méthode- dismissNowqui utilise- commitNowpour la parité avec la fonction- showNow. Notez que cela ne fermera pas immédiatement la- Dialog, mais cela mettra uniquement à jour l'état de- FragmentManagerde manière synchrone. (I15c36, b/72644830)
Refactorisation de l'état d'instance enregistré
- FragmentManagerenregistre désormais son état d'instance enregistré dans- Bundleau lieu de passer directement par un- Parcelablepersonnalisé. Il s'agit de la première étape pour fournir plus de transparence concernant ce qui est enregistré par Fragments. (I93807, b/207158202)
- Les résultats définis via les API de Fragment Result qui n'ont pas encore été fournis sont maintenant enregistrés séparément de l'état interne de FragmentManager. Vous pourrez ainsi déterminer plus précisément quels résultats sont enregistrés pour l'état de votre instance enregistrée. (I6ea12, b/207158202)
Version 1.5.0-alpha05
6 avril 2022
Publication d'androidx.fragment:fragment:1.5.0-alpha05, androidx.fragment:fragment-ktx:1.5.0-alpha05 et androidx.fragment:fragment-testing:1.5.0-alpha05. Liste des commits de la version 1.5.0-alpha05
Modifications apportées à l'API
- setHasOptionsMenu()de- Fragmenta été abandonné. Pour gérer les menus et leurs éléments de menu, utilisez les nouvelles API de menu, conformément aux notes de version de Fragment- 1.5.0-alpha04. (I7b4b4, b/226438239)
Version 1.5.0-alpha04
23 mars 2022
Publication d'androidx.fragment:fragment:1.5.0-alpha04, androidx.fragment:fragment-ktx:1.5.0-alpha04 et androidx.fragment:fragment-testing:1.5.0-alpha04. Liste des commits de la version 1.5.0-alpha04
Modifications apportées à l'API
- Les API Fragment permettant de fournir un menu aux ActionBarde votre activité, ont été abandonnées, car elles associent étroitement votre fragment à votre activité et ne peuvent pas être testées de façon isolée. Les APIMenuHostetMenuProviderajoutées dans Activity1.4.0-alpha01fournissent une surface d'API équivalente, compatible avec le cycle de vie et testable, que les fragments doivent utiliser. (I50a59, I20758)
Corrections de bugs
- SavedStateViewFactoryest désormais compatible avec- CreationExtras, même lorsqu'ils ont été initialisés avec un- SavedStateRegistryOwner. Les arguments initialisés sont ignorés si des éléments supplémentaires sont fournis. (I6c43b, b/224844583)
Version 1.5.0-alpha03
23 février 2022
Publication d'androidx.fragment:fragment:1.5.0-alpha03, androidx.fragment:fragment-ktx:1.5.0-alpha03 et androidx.fragment:fragment-testing:1.5.0-alpha03. Liste des commits de la version 1.5.0-alpha03
Modifications apportées à l'API
- Vous pouvez maintenant transmettre CreationExtrasaux fonctionsby viewModels()etby activityViewModels(). (Ibefe7, b/217601110)
Nouveaux comportements
- DialogFragmentutilise désormais- ComponentDialogcomme boîte de dialogue par défaut renvoyée par- onCreateDialog(). (If3784, b/217618170)
Version 1.5.0-alpha02
9 février 2022
Publication d'androidx.fragment:fragment:1.5.0-alpha02, androidx.fragment:fragment-ktx:1.5.0-alpha02 et androidx.fragment:fragment-testing:1.5.0-alpha02. Liste des commits de la version 1.5.0-alpha02
Nouvelles fonctionnalités
- FragmentStrictModepermet désormais aux fragments tiers privés de contourner des pénalités de violation spécifiques en utilisant- allowViolation()avec le nom de classe. (I8f678)
Version 1.5.0-alpha01
26 janvier 2022
Publication d'androidx.fragment:fragment:1.5.0-alpha01, androidx.fragment:fragment-ktx:1.5.0-alpha01 et androidx.fragment:fragment-testing:1.5.0-alpha01. Liste des commits de la version 1.5.0-alpha01
Nouvelles fonctionnalités
- Fragments'intègre désormais avec ViewModel CreationExtras, qui a été introduit dans Lifecycle- 2.5.0-alpha01. (I3060b, b/207012585)
Corrections de bugs
- Depuis Fragment 1.4.1:FragmentContainerViewne génère plus d'exception d'état illégale lorsque les ID de vue générés à partir du fichier XML comportent des valeurs négatives. (Ic185b, b/213086140)
- Depuis Fragment 1.4.1: lorsque vous utilisez un lambdaownerProducerpersonnalisé avec la fonction paresseuseby viewModels(), il utilise désormais ladefaultViewModelProviderFactoryde ce propriétaire si uneViewModelProvider.Factorypersonnalisée n'est pas fournie, au lieu d'utiliser toujours la fabrique du fragment. (I56170, b/214106513)
- Correction d'un plantage survenant lors du premier accès au ViewModelà partir d'un rappel deregisterForActivityResult()d'unFragment. (Iea2b3)
Version 1.4
Version 1.4.1
26 janvier 2022
Publication d'androidx.fragment:fragment:1.4.1, androidx.fragment:fragment-ktx:1.4.1 et androidx.fragment:fragment-testing:1.4.1. Liste des commits de la version 1.4.1
Corrections de bugs
- FragmentContainerViewne génère plus d'exception d'état illégale lorsque les ID de vue générés à partir du fichier XML comportent des valeurs négatives. (Ic185b, b/213086140)
- Lorsque vous utilisez un lambda ownerProducerpersonnalisé avec la fonction paresseuseby viewModels(), il utilise désormais ladefaultViewModelProviderFactoryde ce propriétaire si uneViewModelProvider.Factorypersonnalisée n'est pas fournie, au lieu d'utiliser toujours la fabrique du fragment. (I56170, b/214106513)
Version 1.4.0
17 novembre 2021
Publication d'androidx.fragment:fragment:1.4.0, androidx.fragment:fragment-ktx:1.4.0 et androidx.fragment:fragment-testing:1.4.0. Liste des commits de la version 1.4.0
Changements importants depuis la version 1.3.0
- Les API FragmentStrictModefournissent des vérifications d'exécution qui vous permettent de vérifier que votre application ou les bibliothèques dont vous dépendez n'appellent pas d'API de fragment obsolètes. Lorsqu'une violation est détectée, vous pouvez choisir d'afficher un message de journal, de déclencher votre propre écouteur personnalisé ou de faire planter votre application. LeFragmentStrictMode.Policyqui contrôle les vérifications activées et les pénalités déclenchées peut être défini sur unFragmentManagervia la nouvelle méthodesetStrictModePolicy(). Ce règlement s'applique à ceFragmentManageret de manière transitoire à tous les gestionnaires de fragments enfants qui ne définissent pas leur propre règlement unique. Consultez la section StrictMode pour les fragments.
- FragmentContainerViewfournit maintenant une méthode- getFragment()qui renvoie le dernier fragment ajouté au conteneur. Elle utilise la même logique que- findFragmentById()avec l'ID de- FragmentContainerView, mais elle permet le chaînage de l'appel.- val navController = binding.container.getFragment<NavHostFragment>().navController
- FragmentScenarioimplémente désormais- Closeable, ce qui vous permet de l'utiliser avec la méthode- usede Kotlin ou avec try-with-resources.
- Ajout de - FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE}pour indiquer si vous souhaitez activer l'animation de transition standard d'Activity issue de votre thème dans la transition de Fragments.
- L'API expérimentale de - FragmentManager.enableNewStateManager(boolean)a été supprimée et le nouveau gestionnaire d'état est désormais la seule option disponible.
Plusieurs piles "Retour"
FragmentManager gère une pile "Retour" composée de transactions de fragment qui utilisaient addToBackStack(). Vous pouvez ainsi faire apparaître ces transactions et rétablir l'état précédent en utilisant les mécanismes d'enregistrement d'état avec des fragments afin de permettre à vos fragments de rétablir leur état de manière appropriée.
Cette version développe ces mécanismes en fournissant trois nouvelles API FragmentManager : saveBackStack(String name), restoreBackStack(String name) et clearBackStack(String name). Ces API utilisent le même name que addToBackStack() pour enregistrer l'état de FragmentTransaction et l'état de chaque fragment ajouté à ces transactions. Elles vous permettent aussi de restaurer ultérieurement ces transactions et leurs fragments avec leur état intact. Cela vous permet de "basculer" efficacement entre plusieurs piles "Retour" en enregistrant la pile "Retour" actuelle et en restaurant une pile "Retour" enregistrée.
saveBackStack() fonctionne de façon semblable à popBackStack() dans la mesure où il est asynchrone et entraîne le retour (affichage) de toutes les transactions de fragment jusqu'à ce nom spécifique, ainsi que la destruction et la suppression de tous les fragments ajoutés. Toutefois plusieurs différences importantes existent entre ces concepts :
- saveBackStack()est toujours inclusif.
- Contrairement à popBackStack(), qui affiche toutes les transactions de la pile "Retour" si le nom spécifié est introuvable dans la pile "Retour" ou si un nom nul est spécifié,saveBackStack()ne fait rien si vous n'avez pas déjà validé une transaction de fragment à l'aide deaddToBackStack()avec ce nom exact non nul.
- L'état de tous les fragments ajoutés à partir de ces transactions est enregistré. Cela signifie que l'état d'affichage de chaque fragment est stocké, que onSaveInstanceState()est appelé pour chaque fragment et que cet état est restauré, et toutes les instancesViewModelassociées à ces fragments sont conservées (etonCleared()n'est pas appelé sur ces derniers).
Les transactions de fragment pouvant être utilisées avec saveBackStack() doivent répondre à certains critères :
- Chaque transaction de fragment doit utiliser setReorderingAllowed(true)pour garantir qu'elle peut être restaurée sous la forme d'une seule opération atomique.
- L'ensemble de transactions enregistré doit être autonome (en d'autres termes, il ne doit pas faire explicitement référence à des fragments en dehors de cet ensemble de transactions) afin de pouvoir être restauré ultérieurement, quelles que soient les modifications apportées à la pile "Retour" entre-temps.
- Aucun fragment enregistré ne peut être un fragment conservé, ni disposer d'un fragment conservé dans son ensemble transitif de fragments enfants, afin de garantir que FragmentManagerne renvoie aucune référence aux fragments enregistrés après l'enregistrement de la pile "Retour".
Tout comme saveBackStack(), restoreBackStack() et clearBackStack(), qui, respectivement, restaurent ou effacent une pile "Retour" précédemment enregistrée, ces deux actions n'ont aucun effet si vous n'avez pas encore appelé saveBackStack() avec le même nom.
Pour plus d'informations, consultez la section Plusieurs piles "Retour" : informations détaillées.
Version 1.4.0-rc01
3 novembre 2021
Publication d'androidx.fragment:fragment:1.4.0-rc01 sans aucune modification par rapport à la version 1.4.0-beta01 de Fragment.  Liste des commits de la version 1.4.0-rc01
Version 1.4.0-beta01
27 octobre 2021
Publication d'androidx.fragment:fragment:1.4.0-beta01, androidx.fragment:fragment-ktx:1.4.0-beta01 et androidx.fragment:fragment-testing:1.4.0-beta01. Liste des commits de la version 1.4.0-beta01
Corrections de bugs
- Les fragments parents vont maintenant répercuter onHiddenChanged()dans toute leur hiérarchie descendante avant de lancer leur propre rappel. (Iedc20, b/77504618)
- Le clavier va maintenant se fermer automatiquement lorsque vous passez d'un fragment avec un clavier ouvert à un fragment avec une vue recycleur. (I8b842, b/196852211)
- DialogFragmentutilise désormais- setReorderingAllowed(true)pour toutes les transactions qu'il crée lorsque vous appelez- show(),- showNow()ou- dismiss(). (Ie2c14)
- L'avertissement lint extrêmement long de DetachAndAttachFragmentInSameFragmentTransactiona été raccourci enDetachAndAttachSameFragment. (e9eca3)
Version 1.4.0-alpha10
29 septembre 2021
Publication d'androidx.fragment:fragment:1.4.0-alpha10, androidx.fragment:fragment-ktx:1.4.0-alpha10 et androidx.fragment:fragment-testing:1.4.0-alpha10. Liste des commits de la version 1.4.0-alpha10
lint
- Ajout de l'avertissement lint DetachAndAttachFragmentInSameFragmentTransactionpour détecter les appels dedetach()etattach()sur le mêmeFragmentdans la mêmeFragmentTransaction. En effet, comme ces opérations complémentaires s'annulent l'une l'autre au cours de la même transaction, elles doivent être fractionnées en transactions distinctes pour avoir un effet. (aosp/1832956, b/200867930)
- Ajout de l'erreur lint FragmentAddMenuProviderindiquant d'utiliser le cycle de vie de la vue de Fragment au lieu du cycle de vie de Fragment lorsque vous utilisez l'APIaddMenuProviderdeMenuHost. (aosp/1830457, b/200326272)
Mises à jour de la documentation
- Le message d'abandon des API, désormais gérées par les API Activity Result, à savoir startActivityForResult,startIntentSenderForResult,onActivityResult,requestPermissionsetonRequestPermissionsResult, comporte davantage de détails. (cce80f)
- Le message d'abandon pour onActivityCreated()pourFragmentetDialogFragmentcomporte maintenant davantage de détails. (224db4)
Version 1.4.0-alpha09
15 septembre 2021
Publication d'androidx.fragment:fragment:1.4.0-alpha09, androidx.fragment:fragment-ktx:1.4.0-alpha09 et androidx.fragment:fragment-testing:1.4.0-alpha09. Liste des commits de la version 1.4.0-alpha09
Nouvelles fonctionnalités
- Vous pouvez maintenant appeler clearBackStack(name)pour effacer tout état précédemment enregistré avecsaveBackStack(name). (I70cd7)
Modifications apportées à l'API
- La classe FragmentContainerViewa été réécrite en Kotlin pour s'assurer que la fonctiongetFragmentrespecte la possibilité de valeur nulle. (If694a, b/189629145)
- FragmentStrictMode est désormais écrit en Kotlin (I11767, b/199183506).
Corrections de bugs
- L'état d'un fragment ajouté avec setReorderingAllowed(true), puis supprimé immédiatement avant l'exécution de transactions en attente n'était pas nettoyé correctement. Ce problème a été résolu. (I8ccb8)
Version 1.4.0-alpha08
1er septembre 2021
Publication d'androidx.fragment:fragment:1.4.0-alpha08, androidx.fragment:fragment-ktx:1.4.0-alpha08 et androidx.fragment:fragment-testing:1.4.0-alpha08. Liste des commits de la version 1.4.0-alpha08
Corrections de bugs
- Amélioration de la vérification lint UseRequireInsteadOfGetpour une meilleure gestion des parenthèses redondantes. (I2d865)
- Amélioration de la vérification lint UseGetLayoutInflaterpour la gestion de cas particuliers supplémentaires. (Ie5423)
Version 1.4.0-alpha07
18 août 2021
Publication d'androidx.fragment:fragment:1.4.0-alpha07, androidx.fragment:fragment-ktx:1.4.0-alpha07 et androidx.fragment:fragment-testing:1.4.0-alpha07 sans modification notable. Liste des commits de la version 1.4.0-alpha07
Version 1.4.0-alpha06
4 août 2021
Publication d'androidx.fragment:fragment:1.4.0-alpha06, androidx.fragment:fragment-ktx:1.4.0-alpha06 et androidx.fragment:fragment-testing:1.4.0-alpha06. Liste des commits de la version 1.4.0-alpha06
Corrections de bugs
- Lors du basculement rapide entre plusieurs piles "Retour", certaines piles "Retour" s'affichaient en tant que IllegalStateExceptionlors de la restauration d'uneFragmentTransactionou en tant que deuxième copie d'un fragment. Ce problème a été résolu. (I9039f)
- Correction d'un problème pour lequel FragmentManagerconservait une copie de l'état enregistré précédemment viasaveBackStack(), même après la restauration de cet état. (Ied212)
- La méthode dismissAllowingStateLoss()deDialogFragmentne plante plus lorsque vous l'appelez une fois l'état enregistré, lors de l'ajout spécifique de DialogFragment via la méthodeshow(FragmentTransaction, String). (I84422)
Version 1.4.0-alpha05
21 juillet 2021
Publication d'androidx.fragment:fragment:1.4.0-alpha05, androidx.fragment:fragment-ktx:1.4.0-alpha05 et androidx.fragment:fragment-testing:1.4.0-alpha05. Liste des commits de la version 1.4.0-alpha05
Corrections de bugs
- Depuis Fragment 1.3.6: la vue de Fragment est désormais correctement définie surGONEquand vous utilisezhide()lorsque le paramètretransitionGroup=”true”est défini pour la vue racine. (aosp/1766655, b/193603427)
- Depuis Fragment 1.3.6: désormais, la première opération deFragmentActivitydans les rappels de cycle de vie qu'il remplace consiste à déverrouiller l'état enregistré. (I6db7a)
Mise à jour de la dépendance
- Depuis Fragment 1.3.6: les fragments dépendent désormais d'Activity1.2.4(I3a66c)
Version 1.4.0-alpha04
30 juin 2021
Publication d'androidx.fragment:fragment:1.4.0-alpha04, androidx.fragment:fragment-ktx:1.4.0-alpha04 et androidx.fragment:fragment-testing:1.4.0-alpha04. Liste des commits de la version 1.4.0-alpha04
Modifications apportées à l'API
- FragmentManagerutilise désormais- SavedStateRegistryen arrière-plan pour enregistrer son état. Les méthodes- saveAllState()et- restoreSavedState()sont également obsolètes dans- FragmentController. Si vous utilisez- FragmentControllerpour héberger des fragments en dehors de- FragmentActivity, votre- FragmentHostCallbacksdoit implémenter- SavedStateRegistryOwner. (Iba68e, b/188734238)
Corrections de bugs
- L'appel de saveBackStack()lors de la prise en charge de plusieurs piles "Retour" échouait en cas d'exécution simultanée d'uneFragmentTransactionutilisantreplace(). Ce problème a été résolu. (I73137)
- Correction d'une NullPointerExceptionqui se produisait après la restauration manuelle d'une pile "Retour" enregistrée qui contenait plusieurs transactions lors de l'utilisation de l'APIrestoreBackStack()pour la prise en charge de plusieurs piles "Retour". Cela a également permis de résoudre le problème pour lequelsetReorderingAllowed(true)n'était pas vérifié pour toutes les transactions. (I8c593)
- Correction d'un problème pour lequel FragmentManagercontinuait de restaurer par erreur l'état précédemment enregistré de fragments, même après leur suppression deFragmentManager, ce qui entraînait la croissance continue de l'état enregistré au fil du temps. (I1fb8e)
Version 1.4.0-alpha03
16 juin 2021
Publication d'androidx.fragment:fragment:1.4.0-alpha03, androidx.fragment:fragment-ktx:1.4.0-alpha03 et androidx.fragment:fragment-testing:1.4.0-alpha03. Liste des commits de la version 1.4.0-alpha03
Nouvelles fonctionnalités
- Toutes les classes Violationde StrictMode de Fragment ont été mises à jour avec des messages d'erreur plus détaillés expliquant les détails de la violation. (b/187871638)- FragmentTagUsageViolationcontient désormais un message d'erreur plus détaillé indiquant le conteneur parent auquel le fragment aurait été ajouté. (Ic33a7)
- WrongFragmentContainerViolationdispose désormais d'un message d'erreur plus détaillé incluant le conteneur auquel le fragment était en train d'être ajouté. (Ib55f8)
- Les classes de cas d'utilisation de TargetFragmentUsageViolationdisposent désormais de messages d'erreur plus détaillés pour inclure le fragment à l'origine de la violation, ainsi que toute autre information contenue. (Icc6ac)
- Les classes qui étendent RetainInstanceUsageViolationdisposent désormais de messages d'erreur plus détaillés qui incluent le fragment à l'origine de la violation. (I6bd55)
- FragmentReuseViolationdispose désormais d'un message d'erreur plus détaillé incluant l'ID précédent du fragment. (I28ce2)
- SetUserVisibleHintViolationdispose désormais d'un message d'erreur plus détaillé incluant la valeur de configuration en cours de l'indicateur visible par l'utilisateur. (Ib2d5f)
 
Nouveaux comportements
- Annulation de la restriction lors de l'appel de fitsSystemWindowsdans uneFragmentContainerView. Votre application ne plante donc plus. (6b8ddd, b/190622202)
Corrections de bugs
- Depuis Fragment 1.3.5: correction d'une régression dans les transitions d'éléments partagés introduite dans Fragment1.3.4par aosp/1679887. Les fragments gèrent désormais correctement les groupes de transition (définis directement viatransitionGroup="true"ou indirectement viatransitionNameoubackground), et les éléments partagés ne génèrent plus deIndexOutOfBoundsException. (I16484, b/188679569, b/188969304)
- Le FragmentManagerne plante plus lorsque vous tentez de masquer un fragment en cours de suppression. (I573dd, b/183634730)
- La vérification lint OnCreateDialogIncorrectCallbackne plante plus lors de l'évaluation d'une variable de niveau supérieur. (0a9efa, b/189967522)
Version 1.4.0-alpha02
2 juin 2021
Publication d'androidx.fragment:fragment:1.4.0-alpha02, androidx.fragment:fragment-ktx:1.4.0-alpha02 et androidx.fragment:fragment-testing:1.4.0-alpha02. Liste des commits de la version 1.4.0-alpha02
Nouvelles fonctionnalités
- FragmentStrictModeenregistre désormais toujours les cas de violation dans le journal lorsque la journalisation est activée via le- FragmentManager, quelle que soit le règlement de mode strict actuellement utilisé. (I02df6, b/187872638)
- FragmentStrictModepermet désormais d'exempter certaines classes- Fragmentdes- Violationen mode strict, ce qui permet à ces classes d'ignorer les pénalités éventuelles. (Ib4e5d, b/184786736)
- La classe de - Violation- FragmentStrictModea été développée pour ajouter des informations de structure en fonction de chaque violation. Cela vous permet de vérifier exactement la cause de la violation ainsi que le fragment à l'origine de la violation (If5118, b/187871150). Chaque- Violationcontient les éléments suivants :- WrongFragmentContainerViolationcontient désormais le- ViewGroupauquel- Fragmenttentait d'être ajouté. (I83c75, b/187871150)
- TargetFragmentUsageViolationa été étendu à- SetTargetFragmentUsageViolation,- GetTargetFragmentUsageViolationet- GetTargetFragmentRequestCodeUsageViolation,- SetTargetFragmentUsageViolationcontenant le fragment cible et le code de requête. (I741b4, b/187871150)
- SetUserVisibleHintViolationcontient désormais la valeur booléenne transmise dans- setUserVisibleHint(). (I00585, b/187871150)
- FragmentTagUsageViolationcontient désormais le ViewGroup dans lequel la balise- <fragment>tentait de gonfler un fragment. (I5dbbc, b/187871150)
- FragmentReuseViolationcontient désormais l'ID unique de l'instance précédente de- Fragmentà l'origine de la violation. (I0544d, b/187871150)
- RetainInstanceUsageViolationest désormais abstrait et comporte deux sous-classes,- SetRetainInstanceUsageViolationet- GetRetainInstanceUsageViolation, représentant les deux cas pour le type de violation. (Ic81e5, b/187871150)
 
Nouveaux comportements
- FragmentContainerViewgénère désormais une exception lorsque vous tentez de modifier l'attribut- fitsSystemWindowde façon programmatique ou via XML. Les encarts doivent être gérés par la vue de chaque fragment individuel. (Ie6651, b/187304502)
Version 1.4.0-alpha01
18 mai 2021
Publication d'androidx.fragment:fragment:1.4.0-alpha01, androidx.fragment:fragment-ktx:1.4.0-alpha01 et androidx.fragment:fragment-testing:1.4.0-alpha01. Liste des commits de la version 1.4.0-alpha01
Nouvelles fonctionnalités
- FragmentContainerViewfournit maintenant une méthode- getFragment()qui renvoie le dernier fragment ajouté au conteneur. Elle utilise la même logique que- findFragmentById()avec l'ID de- FragmentContainerView, mais elle permet le chaînage de l'appel. (Ife17a, b/162527857)- val navController = binding.container.getFragment<NavHostFragment>().navController
- Ajout de - FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE}pour indiquer si vous souhaitez activer l'animation de transition standard d'Activity issue de votre thème dans la transition de Fragments. (I46652)
Plusieurs piles "Retour"
FragmentManager gère une pile "Retour" composée de transactions de fragment qui utilisaient addToBackStack(). Vous pouvez ainsi faire apparaître ces transactions et rétablir l'état précédent en utilisant les mécanismes d'enregistrement d'état avec des fragments afin de permettre à vos fragments de rétablir leur état de manière appropriée.
Cette version développe ces mécanismes en fournissant deux nouvelles API FragmentManager : saveBackStack(String name) et restoreBackStack(String name). Ces API utilisent le même name que addToBackStack() pour enregistrer l'état de FragmentTransaction et l'état de chaque fragment ajouté à ces transactions. Elles vous permettent aussi de restaurer ultérieurement ces transactions et leurs fragments avec leur état intact. Cela vous permet de "basculer" efficacement entre plusieurs piles "Retour" en enregistrant la pile "Retour" actuelle et en restaurant une pile "Retour" enregistrée.
saveBackStack() fonctionne de façon semblable à popBackStack() dans la mesure où il est asynchrone et entraîne le retour (affichage) de toutes les transactions de fragment jusqu'à ce nom spécifique, ainsi que la destruction et la suppression de tous les fragments ajoutés. Toutefois plusieurs différences importantes existent entre ces concepts :
- saveBackStack()est toujours inclusif.
- Contrairement à popBackStack(), qui affiche toutes les transactions de la pile "Retour" si le nom spécifié est introuvable dans la pile "Retour" ou si un nom nul est spécifié,saveBackStack()ne fait rien si vous n'avez pas déjà validé une transaction de fragment à l'aide deaddToBackStack()avec ce nom exact non nul.
- L'état de tous les fragments ajoutés à partir de ces transactions est enregistré. Cela signifie que l'état d'affichage de chaque fragment est stocké, que onSaveInstanceState()est appelé pour chaque fragment et que cet état est restauré, et toutes les instancesViewModelassociées à ces fragments sont conservées (etonCleared()n'est pas appelé sur ces derniers).
Les transactions de fragment pouvant être utilisées avec saveBackStack() doivent répondre à certains critères :
- Chaque transaction de fragment doit utiliser setReorderingAllowed(true)pour garantir qu'elle peut être restaurée sous la forme d'une seule opération atomique.
- L'ensemble de transactions enregistré doit être autonome (en d'autres termes, il ne doit pas faire explicitement référence à des fragments en dehors de cet ensemble de transactions) afin de pouvoir être restauré ultérieurement, quelles que soient les modifications apportées à la pile "Retour" entre-temps.
- Aucun fragment enregistré ne peut être un fragment conservé, ni disposer d'un fragment conservé dans son ensemble transitif de fragments enfants, afin de garantir que FragmentManagerne renvoie aucune référence aux fragments enregistrés après l'enregistrement de la pile "Retour".
Tout comme saveBackStack(), restoreBackStack() n'a aucun effet si vous n'avez pas encore appelé saveBackStack() avec le même nom. (b/80029773)
StrictMode de Fragment
Les API FragmentStrictMode fournissent des vérifications d'exécution qui vous permettent de vérifier que votre application ou les bibliothèques dont vous dépendez n'appellent pas d'API de fragment obsolètes. Lorsqu'une violation est détectée, vous pouvez choisir d'afficher un message de journal, de déclencher votre propre écouteur personnalisé ou de faire planter votre application. Le FragmentStrictMode.Policy qui contrôle les vérifications activées et les pénalités déclenchées peut être défini sur un FragmentManager via la nouvelle méthode setStrictModePolicy(). Ce règlement s'applique à ce FragmentManager et de manière transitoire à tous les gestionnaires de fragments enfants qui ne définissent pas leur propre règlement unique. (#123, #131, #150, b/143774122)
- detectFragmentReuse()détecte si une instance- Fragmentprécédemment supprimée est de nouveau en cours d'ajout à un- FragmentManager. Vous ne devez jamais interagir avec une instance- Fragmentni conserver une instance vers celle-ci après qu'elle a été détruite et supprimée d'un- FragmentManager. (#142, b/153738653)
- detectFragmentTagUsage()détecte si vous utilisez la balise- <fragment>dans votre fichier XML de mise en page. Vous devez toujours utiliser- FragmentContainerViewlorsque vous gonflez des fragments dans votre mise en page. (#141, b/153738235)
- detectWrongFragmentContainer()détecte lorsque vous ajoutez un fragment à un conteneur qui n'est pas un élément- FragmentContainerView. Vous devez toujours utiliser- FragmentContainerViewcomme conteneur pour les fragments de votre mise en page. (#146, b/181137036)
- detectRetainInstanceUsage()détecte si vous utilisez les API- setRetainInstance()ou- getRetainInstance(), qui sont obsolètes. (#140, b/153737954)
- detectSetUserVisibleHint()détecte si vous utilisez l'API- setUserVisibleHint()obsolète. (#136, b/153738974)
- detectTargetFragmentUsage()détecte si vous utilisez les API- setTargetFragment(),- getTargetFragment()ou- getTargetRequestCode(), qui sont obsolètes. (#139, b/153737745)
Modifications apportées à l'API
- L'API expérimentale de FragmentManager.enableNewStateManager(boolean)a été supprimée et le nouveau gestionnaire d'état est désormais la seule option disponible. (I90036, b/162776418)
- FragmentScenarioimplémente désormais- Closeable, ce qui vous permet de l'utiliser avec la méthode- usede Kotlin ou avec try-with-resources. (#121, b/143774122)
Nouvelles vérifications lint
- La vérification lint UseGetLayoutInflatervous avertit désormais lorsque vous utilisezLayoutInflater.from(Context)dans unDialogFragment. Vous devez toujours utiliser la méthodegetLayoutInflater()du fragment de boîte de dialogue pour obtenir les valeurs appropriées pourLayoutInflater. (#156, b/170781346)
- La vérification lint DialogFragmentCallbacksDetectorvous avertit désormais lorsque vous appelezsetOnCancelListenerousetOnDismissListenerdans la méthodeonCreateDialog()d'unDialogFragment. Ces écouteurs appartiennent auDialogFragmentlui-même. Vous devez donc remplaceronCancel()etonDismiss()pour recevoir ces rappels. (#171, b/181780047, b/187524311)
Corrections de bugs
- Depuis Fragment 1.3.4 : correction d'une régression introduite dans Fragment 1.3.3lors de l'utilisation de l'APIViewTreeViewModelStoreOwner.get()avecViewModelProviderou de la méthode Jetpack Compose deviewModel()dans un fragment. Ces cas d'utilisation utilisent désormais correctement leViewModelProvider.Factoryfourni par votre fragment s'il remplacegetDefaultViewModelProviderFactory()(comme le font les fragments annotés@AndroidEntryPointlors de l'utilisation de Hilt). Si vous ne remplacez pas cette méthode, uneSavedStateViewModelFactoryqui enregistre et restaure son état parallèlement à la vue du fragment est créée en tant que fabrique par défaut. (I5cbfa, b/186097368)
- Depuis Fragment 1.3.4 : lorsque vous utilisez FragmentContainerViewavec l'API 29, les encarts ne sont plus envoyés indéfiniment, ce qui résout les problèmes avec les instancesBottomNavigationBaretFloatingActionButton. (I1bb78, b/186012452)
- Depuis Fragment 1.3.4 : vous pouvez désormais récupérer votre Parcelable à partir du lot de résultats du fragment après l'arrêt du processus. (I65932, b/187443158)
- Depuis Fragment 1.3.4 : lors d'une transition d'élément partagé sur un ViewGroup, si transitionGroupest défini sur "false" pour le ViewGroup, la transition s'effectuera désormais correctement. (I99675)
Contribution externe
- Merci à simonschiller pour avoir fait en sorte que FragmentScenarioimplémenteCloseable. (#121, b/143774122)
- Merci à simonschiller pour avoir ajouté l'ensemble de l'API FragmentStrictModepour cette version ! (#123, #131, #150, b/143774122, #142, b/153738653, #141, b/153738235, #146, b/181137036, #140, b/153737954, #136, b/153738974, #139, b/153737745)
- Merci à tatocaster d'avoir ajouté la vérification lint UseGetLayoutInflater. (#156, b/170781346)
- Merci à tatocaster d'avoir ajouté la vérification lint DialogFragmentCallbacksDetector. (#171, b/181780047)
Version 1.3
Version 1.3.6
21 juillet 2021
Publication d'androidx.fragment:fragment:1.3.6, androidx.fragment:fragment-ktx:1.3.6 et androidx.fragment:fragment-testing:1.3.6. Liste des commits de la version 1.3.6
Corrections de bugs
- Depuis Fragment 1.4.0-alpha03:FragmentManagerne plante plus lorsque vous tentez de masquer un fragment en cours de suppression. (I573dd, b/183634730)
- La vue de Fragment est désormais correctement définie sur GONEquand vous utilisezhide()lorsque le paramètretransitionGroup=”true”est défini pour la vue racine. (aosp/1766655, b/193603427)
- Désormais, la première opération de FragmentActivitydans les rappels de cycle de vie qu'il remplace consiste à déverrouiller l'état enregistré. (I6db7a)
Mise à jour de la dépendance
- Depuis Fragment 1.3.6: les fragments dépendent désormais d'Activity1.2.4(I3a66c)
Version 1.3.5
16 juin 2021
Publication d'androidx.fragment:fragment:1.3.5, androidx.fragment:fragment-ktx:1.3.5 et androidx.fragment:fragment-testing:1.3.5. Liste des commits de la version 1.3.5
Corrections de bugs
- Correction d'une régression dans les transitions d'éléments partagés introduite dans Fragment 1.3.4par aosp/1679887. Les fragments gèrent désormais correctement les groupes de transition (définis directement viatransitionGroup="true"ou indirectement viatransitionNameoubackground), et les éléments partagés ne génèrent plus deIndexOutOfBoundsException. (I16484, b/188679569, b/188969304)
Version 1.3.4
18 mai 2021
Publication d'androidx.fragment:fragment:1.3.4, androidx.fragment:fragment-ktx:1.3.4 et androidx.fragment:fragment-testing:1.3.4. Liste des commits de la version 1.3.4
Corrections de bugs
- Correction d'une régression introduite dans Fragment 1.3.3lors de l'utilisation de l'APIViewTreeViewModelStoreOwner.get()avecViewModelProviderou de la méthode Jetpack Compose deviewModel()dans un fragment lors de l'utilisation de Hilt. Ces cas d'utilisation utilisent désormais correctement leViewModelProvider.Factoryfourni par votre fragment s'il remplacegetDefaultViewModelProviderFactory()(comme le font les fragments annotés@AndroidEntryPoint). Si vous ne remplacez pas cette méthode, uneSavedStateViewModelFactoryqui enregistre et restaure son état parallèlement à la vue du fragment est créée en tant que fabrique par défaut. (I5cbfa, b/186097368)
- Lorsque vous utilisez FragmentContainerViewavec l'API 29, les encarts ne sont plus envoyés indéfiniment, ce qui résout les problèmes avec les instancesBottomNavigationBaretFloatingActionButton. (I1bb78, b/186012452)
- Vous pouvez désormais récupérer votre Parcelable à partir du lot de résultats du fragment après l'arrêt du processus. (I65932, b/187443158)
- Lors d'une transition d'élément partagé sur un ViewGroup, si transitionGroupest défini sur "false" pour le ViewGroup, la transition s'effectuera désormais correctement. (I99675)
Version 1.3.3
21 avril 2021
Publication d'androidx.fragment:fragment:1.3.3, androidx.fragment:fragment-ktx:1.3.3 et androidx.fragment:fragment-testing:1.3.3. Liste des commits de la version 1.3.3
Nouvelles fonctionnalités
- L'utilisation de SavedStateViewModelFactoryfonctionne désormais lorsqu'elle est utilisée avec leSavedStateRegistryOwnerrenvoyé en utilisantViewTreeSavedStateRegistryOwner.get()avec la vue de Fragment. (I21acf, b/181577191)
Corrections de bugs
- Correction d'une régression introduite dans Fragment 1.3.2, qui empêchait l'exécution des animationspopEnterlors de l'affichage d'uneFragmentTransactioncontenant une opérationsetPrimaryNavFragment, comme celles utilisées parNavHostFragment(I38c87, b/183877426)
- FragmentContainerViews'assure désormais que chaque- Fragmentreçoit un nouvel ensemble de- WindowInsets, garantissant ainsi que chaque fragment peut désormais consommer les encarts de façon indépendante. (I63f68, b/172153900)
- DialogFragmentgère désormais correctement les cas où un fragment enfant est ajouté à un conteneur ayant le même ID qu'un conteneur de votre classe- Dialogpersonnalisée, ce qui résout les problèmes de hiérarchie des vues lorsque vous réutilisez des ID utilisés en interne par des boîtes de dialogue telles que- BottomSheetDialog. (Ie6279, b/180021387)
- FragmentManager.dump()met désormais correctement en retrait le premier fragment de la liste des fragments actifs. (If5c33, b/183705451)
Corrections de bugs dans le nouveau gestionnaire d'état
- Le nouveau gestionnaire d'état de fragment gère désormais correctement les transitions de sortie avec les opérations de masquage. (I9e4de, b/184830265)
Version 1.3.2
24 mars 2021
Publication d'androidx.fragment:fragment:1.3.2, androidx.fragment:fragment-ktx:1.3.2 et androidx.fragment:fragment-testing:1.3.2. Liste des commits de la version 1.3.2
Corrections de bugs dans le nouveau gestionnaire d'état
- Lors de l'exécution simultanée d'opérations popBackStack()etcommit(), la dernière opération définira désormais la direction de toutes les animations au lieu d'exécuter des animations d'affichage et des animations d'entrée. (I7072e, b/181142246)
- Le nom de transition des vues dans une hiérarchie d'éléments partagés ne sera plus effacé lors de la transition d'éléments partagés. (I4d4a6, b/179934757)
Mises à jour des dépendances
- Fragment dépend désormais d'Activity 1.2.2, ce qui résout un problème avec la vérification lint InvalidFragmentVersionForActivityResultd'Activity lors de l'utilisation de Fragment 1.3.1 ou version ultérieure.
- Fragment dépend désormais de Lifecycle 2.3.1.
Version 1.3.1
10 mars 2021
Publication d'androidx.fragment:fragment:1.3.1, androidx.fragment:fragment-ktx:1.3.1 et androidx.fragment:fragment-testing:1.3.1. Liste des commits de la version 1.3.1
Nouvelles fonctionnalités
- Les boîtes de dialogue d'un DialogFragmentpeuvent désormais accéder aux propriétaires de ViewTree via leur DecorView, ce qui garantit queDialogFragmentpeut être utilisé avecComposeView. (Ib9290, b/180691023)
Corrections de bugs
- Les fragments gonflés dans une activité déjà RESUMEDà l'aide de FragmentContainerView s'affichent désormais correctement après une modification de configuration. (Ie14c8, b/180538371)
- Il n'y a plus de }supplémentaire à la fin du fragmenttoString()(I54705, b/177761088)
- Les méthodes remplacées dans FragmentActivity héritent désormais correctement de la méthode de base javaDoc (I736ce, b/139548782).
- La documentation sur les paramètres de setFragmentResultetsetFragmentResultListenera été mise à jour pour indiquer qu'ils n'acceptent plus les éléments pouvant être nuls (I990ba, b/178348386).
Corrections de bugs dans le nouveau gestionnaire d'état
- Correction d'une fuite de mémoire dans les fragments dus à mFocusedView(Ib4e9e, b/179925887)
- Les fragments appellent désormais correctement onCreateOptionsMenulors de l'utilisation de transactions d'affichage et de masquage (I8bce8, b/180255554).
- Les fragments enfants dont les transitions commencent avant la répartition du fragment atteindront désormais correctement l'état RESUMED(Ic11e6, b/180825150)
- Les fragments gonflés à l'aide de la balise <fragment>arriveront désormais toujours à l'étatRESUMED(I452ac, (I9fa49).
Mises à jour des dépendances
- Fragment 1.3.1 dépend d'Activity 1.2.1. (I557b9)
Version 1.3.0
10 février 2021
Publication d'androidx.fragment:fragment:1.3.0, androidx.fragment:fragment-ktx:1.3.0 et androidx.fragment:fragment-testing:1.3.0. Liste des commits de la version 1.3.0
Principales modifications depuis la version 1.2.0
- Nouveau gestionnaire d'état : une réécriture importante des éléments internes de FragmentManagera résolu de nombreux problèmes liés à l'envoi d'événements de cycle de vie, d'animations et de transitions, ainsi qu'au traitement des fragments reportés.
- Intégration de l'API Activity Result : ajout de la compatibilité avec l'API - ActivityResultRegistryintroduite dans Activity- 1.2.0pour gérer les flux- startActivityForResult()+- onActivityResult()et- requestPermissions()+- onRequestPermissionsResult()sans remplacer les méthodes dans votre fragment, et fourniture des hooks pour tester ces flux. Consultez la section Obtenir un résultat depuis une activité, qui a été mise à jour.- Cette version corrige un certain nombre de problèmes liés à des codes de requête non valides et à la distribution des demandes d'autorisation qui empêchent l'API Activity Result de fonctionner sur les versions précédentes de FragmentActivity. Vous devez passer à Fragment 1.3.0 pour utiliser les API Activity Result dans uneFragmentActivityou uneAppCompatActivity.
 
- Cette version corrige un certain nombre de problèmes liés à des codes de requête non valides et à la distribution des demandes d'autorisation qui empêchent l'API Activity Result de fonctionner sur les versions précédentes de 
- API Fragment Result : ajout de la prise en charge de la transmission de résultats entre deux fragments via de nouvelles API sur - FragmentManager. Cela fonctionne pour les fragments de hiérarchie (parent/enfant), les DialogFragments et les fragments dans Navigation, et garantit que les résultats ne sont envoyés à votre fragment que lorsqu'il est au moins à l'état- STARTED. Les API de fragment cible ont été abandonnées au profit de ces nouvelles API. Consultez Obtenir des résultats à l'aide de l'API Fragment Result.
- FragmentOnAttachListener: le rappel- onAttachFragment()sur- FragmentActivityet- Fragmenta été abandonné. Un nouveau- FragmentOnAttachListenera été ajouté pour fournir une alternative plus flexible, permettant la délégation de- onAttachFragment()à des écouteurs séparés pouvant être testés, et une prise en charge de l'ajout d'un écouteur à des FragmentManagers autres que votre FragmentManager enfant direct.
- Améliorations de - FragmentScenario: la classe- FragmentScenariode l'artefact- fragment-testinga été réécrite en Kotlin et a reçu un certain nombre d'améliorations :- FragmentScenarioutilise désormais- setMaxLifecycle()pour implémenter- moveToState(), ce qui garantit un comportement cohérent dans tous les niveaux d'API et dissocie l'état du fragment de l'activité sous-jacente.
- FragmentScenariopermet désormais de définir un- Lifecycle.Stateinitial permettant de valider l'état du fragment avant de passer à chaque- Lifecycle.Statepour la première fois.
- Il existe désormais une alternative à l'API FragmentScenariodeonFragment, sous la forme de la méthode d'extension Kotlin réifiée (withFragment), qui vous permet de renvoyer une valeur. En particulier, elle élimine les exceptions générées dans le bloc donné.
 
- Prise en charge de - ViewTree:- Fragmentest désormais compatible avec les API- ViewTreeLifecycleOwner.get(View),- ViewTreeViewModelStoreOwner.get(View)et- ViewTreeSavedStateRegistryOwnerajoutées dans Lifecycle- 2.3.0et SavedState- 1.1.0de sorte qu'il renverra le fragment en tant que- ViewModelStoreOwner, et un- SavedStateRegistryOwneret- LifecycleOwnerliés au cycle de vie de la vue du fragment lorsque vous utilisez une- Viewdans un- Fragment.
- Modifications de l'animation - TRANSIT_: les effets par défaut des fragments,- TRANSIT_FRAGMENT_OPEN,- TRANSIT_FRAGMENT_CLOSEet- TRANSIT_FRAGMENT_FADEutilisent désormais- Animatorau lieu de- Animation. Les ressources utilisées pour créer ces animateurs sont désormais privées.
- Abandon de - setRetainInstance(): la méthode- setRetainInstance()exécutée sur des fragments a été abandonnée. Avec l'introduction de ViewModels, les développeurs disposent d'une API spécifique pour conserver l'état, qui peut être associée aux graphiques d'Activity, Fragments et Navigation. Cela permet aux développeurs d'utiliser un fragment normal non conservé et de conserver l'état spécifique qu'ils souhaitent conserver séparément, évitant ainsi une source courante de fuites, tout en conservant les propriétés utiles de création et de destruction uniques de l'état conservé (à savoir, le constructeur de- ViewModelet le rappel- onCleared()qu'il reçoit).
- Abandon de l'adaptateur ViewPager 1 : avec le lancement de ViewPager2 - 1.0.0, les classes- FragmentPagerAdapteret- FragmentStatePagerAdapterpermettant d'interagir avec- ViewPageront été abandonnées. Consultez Effectuer une migration de ViewPager vers ViewPager2.
Version 1.3.0-rc02
27 janvier 2021
Publication d'androidx.fragment:fragment:1.3.0-rc02, androidx.fragment:fragment-ktx:1.3.0-rc02 et androidx.fragment:fragment-testing:1.3.0-rc02. Liste des commits de la version 1.3.0-rc02
Corrections de bugs
- Correction d'un problème pour lequel un DialogFragmentparent s'affichait au-dessus d'unDialogFragmentenfant après une modification de configuration. Les fragments de la boîte de dialogue enfant apparaissent désormais toujours au-dessus du fragment de boîte de dialogue parent. (I30806, b/177439520)
- Résolution du problème où l'exécution d'une opération hideavec uneAnimationentraînait le clignotement du fragment masqué à la fin de l'animation. (I57e22, b/175417675)
- Les fragments avec des transitions ajoutées avant que la hiérarchie de la vue soit associée atteignent désormais correctement l'état RESUMED. (I1fc1d, b/177154873)
Corrections de bugs dans le nouveau gestionnaire d'état
- La vue Lifecycledu fragment gère désormais correctement les cas où la vue du fragment est détruite avant queLifecyclen'atteigneCREATED. Cela évite les exceptions indiquant "no event down from INITIALIZED". (eda2bd, b/176138645)
- Les fragments qui utilisent un Animators'affichent désormais dans le bon ordre lors de l'utilisation deFragmentContainerView. (Id9aa3, b/176089197)
Version 1.3.0-rc01
16 décembre 2020
Publication d'androidx.fragment:fragment:1.3.0-rc01, androidx.fragment:fragment-ktx:1.3.0-rc01 et androidx.fragment:fragment-testing:1.3.0-rc01. Liste des commits de la version 1.3.0-rc01
Corrections de bugs
- onPrepareOptionsMenu()suit désormais la même logique que- onCreateOptionsMenu()et n'est plus appelée lorsqu'un fragment parent appelle- setMenuVisibility(false). (Id7de8, b/173203654)
Corrections de bugs dans le nouveau gestionnaire d'état
- Correction de la fuite et de l'artefact visuel lors de l'ajout d'un fragment avec une Animationà uneFragmentContainerView, puis lors de l'interruption de cet ajout avec une opération d'affichage. (I952d8)
- La vue du fragment restait dans la hiérarchie des vues si elle était remplacée lors de l'utilisation de ses méthodes onCreate()ouonViewCreated(). Ce problème a été résolu. (I8a7d5)
- La sélection est désormais correctement restaurée sur les vues racines de Fragment lorsqu'elles sont réactivées. (Ifc84b)
- La combinaison des opérations d'affichage et de remplacement de la même transaction de fragment affiche désormais les animations appropriées (Ifd4e4, b/170328691).
Version 1.3.0-beta02
2 décembre 2020
Publication d'androidx.fragment:fragment:1.3.0-beta02, androidx.fragment:fragment-ktx:1.3.0-beta02 et androidx.fragment:fragment-testing:1.3.0-beta02. Liste des commits de la version 1.3.0-beta02
Nouvelles fonctionnalités
- FragmentScenarioa été entièrement converti en Kotlin tout en conservant la compatibilité source et binaire via l'utilisation des interfaces fonctionnelles de Kotlin 1.4 pour- FragmentAction. (I19d31)
Nouveaux comportements
- Les FragmentContainerViews qui ne gonflent pas un fragment à l'aide de l'attribut classouandroid:namepeuvent désormais être utilisées en dehors d'uneFragmentActivity. (Id4397, b/172266337)
- Si vous essayez de définir le cycle de vie maximal d'un fragment sur DESTROYED, uneIllegalArgumentExceptionest désormais générée (Ie7651, b/170765622)
- L'initialisation d'un FragmentScenario avec un état DESTROYEDgénère désormais uneIllegalArgumentException(I73590, b/170765622)
Corrections de bugs dans le nouveau gestionnaire d'état
- La vue ne pouvait pas atteindre son état final si vous interrompiez une transition de fragment qui utilisait Animatorou l'une des options deTRANSIT_FRAGMENT_. Ce problème a été résolu. (I92426, b/169874632)
- Correction d'un problème qui empêchait la destruction correcte des fragments ayant une Animationen sortie. (I83d65)
- Les fragments dont les effets ont été inversés peuvent désormais s'annuler et redémarrer avec l'effet d'entrée approprié. (I62226, b/167092035)
- L'Animatorde sortie d'unhide()ne s'exécutait pas. Ce problème a été résolu. (Id7ffe)
- Désormais, les fragments s'affichent correctement lorsqu'ils sont reportés, puis immédiatement démarrés. (Ie713b, b/170022857)
- Les fragments qui suppriment leur vue sélectionnée lors d'une animation n'essaieront plus de rétablir la sélection sur la vue détachée une fois qu'ils auront atteint RESUMED(I38c65, b/172925703).
Contribution externe
- FragmentFactorymet désormais en cache les classes de fragment séparément pour les différentes instances- ClassLoader. Merci, Simon Schiller ! (#87, b/113886460)
Version 1.3.0-beta01
1er octobre 2020
Publication d'androidx.fragment:fragment:1.3.0-beta01, androidx.fragment:fragment-ktx:1.3.0-beta01 et androidx.fragment:fragment-testing:1.3.0-beta01. Liste des commits de la version 1.3.0-beta01
Nouvelles fonctionnalités
- setMaxLifecycle()permet désormais de définir l'état- Lifecyclesur- INITIALIZINGtant que le fragment n'a pas été placé à l'état- CREATED. (b/159662173)
Modifications apportées à l'API
- Mise à jour d'AndroidX pour utiliser Kotlin 1.4 (Id6471, b/165307851, b/165300826)
Nouveaux comportements
- Les fichiers de ressources fragmentés ont été correctement rendus privés. (aosp/1425237)
Corrections de bugs
- Désormais, les fragments gonflés à l'aide de la balise <fragment>attendent que leurs vues soient ajoutées à un conteneur avant de passer à l'état STARTED (I02f4c).
- Les fragments visibles exécutent désormais correctement leurs effets de sortie lorsque setMaxLifecycle()est défini surCREATED. (b/165822335)
- La suppression d'un fragment dissocié qui n'a pas été ajouté à la pile "Retour" n'entraîne plus de fuite de mémoire. Merci Nicklas Ansman Giertz ! (b/166489383)
- Désormais, les fragments actifs auront toujours un FragmentManagernon nul, et les fragments avec unFragmentManagernon nul seront toujours considérés comme actifs. (aosp/1422346)
- Les effets par défaut des fragments, TRANSIT_FRAGMENT_OPEN,TRANSIT_FRAGMENT_CLOSEetTRANSIT_FRAGMENT_FADE, utilisent désormaisAnimatorau lieu deAnimation. (b/166155034)
Corrections de bugs dans le nouveau gestionnaire d'état
- Les fragments restaurent désormais correctement l'état de sélection de leur vue juste avant de lancer leur animation. (Icc256)
- Les fragments qui ne comportent qu'une transition d'élément partagé remplissent désormais correctement leurs effets spéciaux, ce qui signifie qu'ils passent réellement à leur état final (Iaebc7, b/166658128).
- Les vues de fragment sont désormais toujours supprimées du conteneur avant d'être détruites. (Id5876)
- Le nouveau gestionnaire d'état supprime désormais systématiquement la vue de fragment sortant avant d'ajouter la vue de fragment entrant. (I41a6e)
- Les modifications explicites de la visibilité de la vue d'un fragment sont désormais respectées par le nouveau gestionnaire d'état. Cela signifie que si vous définissez la vue d'un fragment entrant sur INVISIBLEavant le début de l'animation, celle-ci restera invisible. (b/164481490)
- Les fragments donnent désormais la priorité à Animatorspar rapport àAnimations. Cela signifie qu'un fragment avec les deux n'exécute queAnimatoret ignoreAnimation. (b/167579557)
- Le nouveau gestionnaire d'état n'entraîne plus le clignotement des fragments lors de l'utilisation d'animations entrantes. (b/163084315)
Problème connu
Lorsque vous utilisez le nouveau gestionnaire d'état, si vous appuyez sur la touche Retour pendant un effet spécial d'entrée, au lieu de revenir au fragment précédent, l'ancien fragment n'est jamais ajouté à nouveau, ce qui génère un écran vide. (b/167259187, b/167092035, b/168442830)
Version 1.3.0-alpha08
19 août 2020
Publication d'androidx.fragment:fragment:1.3.0-alpha08, androidx.fragment:fragment-ktx:1.3.0-alpha08 et androidx.fragment:fragment-testing:1.3.0-alpha08. Liste des commits de la version 1.3.0-alpha08
Nouveau gestionnaire d'état
Cette version inclut une refactorisation majeure de la gestion de l'état interne de FragmentManager, qui affecte l'envoi de méthodes, d'animations et de transitions du cycle de vie et la manière dont les transactions reportées sont gérées. Cette option est activée par défaut. Pour en savoir plus, consultez l'article de blog Fragments: Rebuilding the Internals (Fragments : refonte des principes internes). (b/139536619, b/147749580)
- Vous pouvez utiliser une API expérimentale dans FragmentManager.enableNewStateManager(boolean)pour contrôler si FragmentManager utilise le nouveau gestionnaire d'état. (I7b6ee)
Les problèmes suivants ne sont résolus que lors de l'utilisation du nouveau gestionnaire d'état :
- Le fragment précédent d'une opération replaceest maintenant correctement arrêté avant le démarrage du nouveau fragment. (b/161654580)
- Les fragments empêchent à présent l'exécution de plusieurs animations en concurrence sur les mêmes fragments, évitant ainsi les cas où Animationremplacerait tous les effetsTransitionou l'exécution d'unAnimatoret d'uneTransitionsur un fragment individuel. (b/149569323)
- L'enterTransitionet l'exitTranstionde tous les fragments entrants et sortants sont maintenant exécutées au lieu de celles du premier fragment entrant et du dernier fragment sortant uniquement. (b/149344150)
- Les fragments reportés ne sont plus bloqués à l'état CREATED, mais sont déplacés vers l'étatSTARTEDavec les autres fragments. (b/129035555)
- Correction d'un problème qui entraînait l'exécution d'opérations dans le désordre par FragmentManagerlors de la combinaison d'une transaction réorganisée reportée et d'une transaction non réorganisée. (b/147297731)
- L'affichage simultané de plusieurs fragments n'entraîne plus la visibilité temporaire des fragments intermédiaires lors du report de fragments. (b/37140383)
- FragmentManagerrenvoie maintenant les fragments corrects lors de l'appel de- findFragmentById()ou- findFragmentByTag()à partir du rappel- onAttachFragment(). (b/153082833)
- Les fragments n'appellent plus onCreateView()sur les fragments détruits lorsque le fragment qui les remplace est reporté. (b/143915710)
- Le message d'erreur qui s'affiche lorsque vous tentez de combiner les instances Transitiondu framework etTransitiond'AndroidX mentionne désormais le fragment avec une transition non valide. (b/155574969)
Nouveaux comportements
- Vous pouvez maintenant appeler launch()sur unActivityResultLauncherdans la méthode de cycle de vieonCreate()d'un fragment. (b/161464278)
- L'appel de registerForActivityResult()aprèsonCreate()génère désormais une exception indiquant que l'opération n'est pas autorisée au lieu de ne retourner aucun résultat sans en informer l'utilisateur après une modification de la configuration. (b/162255449)
- FragmentActivityutilise désormais l'API- OnContextAvailableListenerintroduite dans Activity- 1.2.0-alpha08pour restaurer l'état de- FragmentManager. Tous les écouteurs ajoutés aux sous-classes de- FragmentActivitys'exécuteront après cet écouteur. (I513da)
Corrections de bugs
- Les ActivityOptionstransmises lors de l'utilisation destartIntentSenderForResult()sont désormais respectées. (b/162247961)
Problème connu
- Lors de l'utilisation du nouveau gestionnaire d'état, si vous définissez directement la visibilité de la vue racine du fragment après onViewCreated()et avantonResume(), la visibilité que vous avez définie sera remplacée parFragmentManager, qui contrôle la visibilité de la vue racine. Pour contourner ce problème, vous devriez toujours utiliser les opérationshide()etshow()pour modifier la visibilité de votre fragment. (b/164481490)
Version 1.3.0-alpha07
22 juillet 2020
Publication d'androidx.fragment:fragment:1.3.0-alpha07, androidx.fragment:fragment-ktx:1.3.0-alpha07 et androidx.fragment:fragment-testing:1.3.0-alpha07. Liste des commits de la version 1.3.0-alpha07
Nouvelles fonctionnalités
- FragmentScenariopermet désormais de définir un état de cycle de vie initial de- CREATED,- STARTEDou- RESUMEDau lieu de toujours faire passer le fragment à l'état- RESUMED. (b/159662750)
- Ajout d'une alternative à l'API FragmentScenariodeonFragmentsous la forme de la méthode d'extension réifiée Kotlin (withFragment) qui vous permet de renvoyer une valeur. En particulier, elle élimine les exceptions générées dans le bloc donné. (b/158697631)
Nouveaux comportements
- FragmentScenarioutilise désormais- setMaxLifecycle()pour implémenter- moveToState(), ce qui garantit un comportement cohérent dans tous les niveaux d'API et dissocie l'état du fragment de l'activité sous-jacente. (b/156527405)
- Le SavedStateRegistryOwnerrenvoyé parViewTreeSavedStateRegistryOwnerest désormais lié au cycle de vie de la vue du fragment. Ainsi, son état est enregistré et restauré en même temps que la vue du fragment. (b/158503763)
Corrections de bugs
- Les fragments attendent désormais que la vue du fragment soit associée avant d'appeler ViewCompat.requestApplyInsets(), ce qui évite les cas où la requête d'encart était supprimée. (b/158095749)
- L'appel de clearFragmentResultListenerefface désormais correctement l'observateur de cycle de vie. (b/159274993)
Version 1.3.0-alpha06
10 juin 2020
Publication d'androidx.fragment:fragment:1.3.0-alpha06, androidx.fragment:fragment-ktx:1.3.0-alpha06 et androidx.fragment:fragment-testing:1.3.0-alpha06. Liste des commits de la version 1.3.0-alpha06
Nouvelles fonctionnalités
- Le rappel onAttachFragment()surFragmentActivityetFragmenta été abandonné. Un nouveauFragmentOnAttachListenera été ajouté pour fournir une alternative plus flexible, permettant la délégation deonAttachFragment()à des écouteurs séparés pouvant être testés, et une prise en charge de l'ajout d'un écouteur à des FragmentManagers autres que votre FragmentManager enfant direct. (I06d3d)
Corrections de bugs
- L'état de la vue des fragments parents est maintenant rétabli avant celui de leurs fragments enfants, ce qui résout un problème d'ordre visuel après une modification de configuration lorsqu'un DialogFragmentaffichait un autreDialogFragmenten tant que fragment enfant. (b/157195715)
- Correction d'un problème qui empêchait la vérification lint UseRequireInsteadOfGetde gérer correctement les utilisations opérateurs?.et!!de façon enchaînée. (b/157677616)
Version 1.3.0-alpha05
20 mai 2020
Publication d'androidx.fragment:fragment:1.3.0-alpha05, androidx.fragment:fragment-ktx:1.3.0-alpha05 et androidx.fragment:fragment-testing:1.3.0-alpha05. Liste des commits de la version 1.3.0-alpha05
Nouvelles fonctionnalités
- Ajout de la prise en charge de ViewTreeViewModelStoreOwnerà partir de Lifecycle2.3.0-alpha03et deViewTreeSavedStateRegistryOwnerà partir de SavedState1.1.0-alpha01lorsque vous utilisez uneViewdans uneFragment. (aosp/1297993, aosp/1300264)
Modifications apportées à l'API
- Les API setFragmentResult()etsetFragmentResultListener()acceptent désormais respectivement les valeursBundleetFragmentResultListener. Pour effacer explicitement un résultat ou un écouteur précédemment défini, utilisez les nouvelles méthodesclearFragmentResult()etclearFragmentResultListener(). (b/155416778)
- Les extensions Kotlin setFragmentResultListener()qui acceptent un lambda sont désormais marquées commeinline. (b/155323404)
Nouveaux comportements
- Les startActivityForResult(),startIntentSenderForResult()etrequestPermissionsprécédemment abandonnés surFragment, utilisent désormaisActivityResultRegistryen interne, ce qui supprime la restriction qui consistait à n'utiliser que les bits inférieurs (en dessous de0xFFFF) pour vos codes de requête lors de l'utilisation de ces API. (b/155518741)
Mises à jour de la documentation
- Développement de la documentation sur les constructeurs Fragment(@LayoutRes int)etDialogFragment(@LayoutRes int)pour préciser qu'ils doivent être appelés à partir du constructeur sans argument de vos sous-classes lorsque vous utilisez la valeur par défautFragmentFactory. (b/153042497)
Version 1.3.0-alpha04
29 avril 2020
Publication d'androidx.fragment:fragment:1.3.0-alpha04, androidx.fragment:fragment-ktx:1.3.0-alpha04 et androidx.fragment:fragment-testing:1.3.0-alpha04. Liste des commits de la version 1.3.0-alpha04
Nouvelles fonctionnalités
- Ajout de la prise en charge de la transmission de résultats entre deux fragments via de nouvelles API sur FragmentManager. Cela fonctionne pour les fragments de hiérarchie (parent/enfant), les DialogFragments et les fragments dans Navigation, et garantit que les résultats ne sont envoyés à votre fragment que lorsqu'il est au moins à l'étatSTARTED. (b/149787344)
Modifications apportées à l'API
- Les API de fragment cible ont été abandonnées. Pour transférer des données entre fragments, utilisez plutôt les nouvelles API Fragment Result. (b/149787344)
- Les API startActivityForResult()/onActivityResult()etrequestPermissions()/onRequestPermissionsResult()sur Fragment ont été abandonnées. Veuillez utiliser les API Activity Result. (aosp/1290887)
- Modification destructive d'Activity 1.2.0-alpha04: la méthodeprepareCall()a été renommée enregisterForActivityResult(). (aosp/1278717)
Corrections de bugs
- Le getViewLifecycleOwner()du fragment est maintenant arrêté avant l'appel deonSaveInstanceState(), reflétant le comportement du cycle de vie du fragment. (b/154645875)
- L'appel de setMenuVisibility(false)sur un fragment modifie désormais correctement la visibilité des menus fournis par ses fragments enfants. (b/153593580)
- Correction d'une illegalStateExceptionlors de l'ajout d'un fragment à la hiérarchie de vues d'unDialogFragmentavecFragmentContainerView. (b/154366601)
- La méthode getDefaultViewModelProviderFactory()exécutée sur des fragments ne plante plus lorsque vous hébergez vos fragments en dehors d'une activité. (b/153762914)
Version 1.3.0-alpha03
1er avril 2020
Publication d'androidx.fragment:fragment:1.3.0-alpha03, androidx.fragment:fragment-ktx:1.3.0-alpha03 et androidx.fragment:fragment-testing:1.3.0-alpha03. Liste des commits de la version 1.3.0-alpha03
Modifications apportées à l'API
- Les méthodes prepareCallsurFragmentsont désormaisfinal. (b/152439361)
Corrections de bugs
- Correction d'une régression introduite dans Fragment 1.3.0-alpha02lors de l'utilisation deBottomSheetDialogFragment. (b/151652127, aosp/1263328, aosp/1265163)
- Correction d'un plantage lors de l'utilisation de prepareCallà partir d'un fragment après un changement de configuration. (b/152137004)
- Correction d'un problème pour lequel les transitions d'élément partagé et de sortie étaient ignorées lors de l'utilisation de setTargetFragment(). (b/152023196)
- Depuis Fragment 1.2.4: mise à jour des règles ProGuard de Fragment pour permettre l'obscurcissement des fragments conservés. (b/151605338)
- Depuis Fragment 1.2.4: désactivation de la règle lintFragmentLiveDataObservesur les classesDialogFragment, car leur cycle de vie et le cycle de vie de leur vue sont toujours synchronisés. Vous pouvez donc utiliserthisouviewLifecycleOwnerlors de l'appel deobserve. (b/151765086)
Modifications de la dépendance
- Les fragments dépendent d'Activity 1.2.0-alpha03, qui a considérablement amélioré l'API Activity Result introduite dans Activity1.2.0-alpha02.
Version 1.3.0-alpha02
18 mars 2020
Publication d'androidx.fragment:fragment:1.3.0-alpha02, androidx.fragment:fragment-ktx:1.3.0-alpha02 et androidx.fragment:fragment-testing:1.3.0-alpha02. Liste des commits de la version 1.3.0-alpha02
Nouvelles fonctionnalités
- Ajout de la compatibilité avec l'API ActivityResultRegistryintroduite dans Activity1.2.0-alpha02pour gérer les fluxstartActivityForResult()+onActivityResult()etrequestPermissions()+onRequestPermissionsResult()sans remplacer les méthodes dans votre fragment, et fourniture des hooks pour tester ces flux. Consultez la section Obtenir un résultat depuis une activité, qui a été mise à jour. (b/125158199)
Modifications apportées à l'API
- DialogFragmentfournit désormais un constructeur qui accepte une- @LayoutResindiquant la mise en page que- onCreateView()doit gonfler par défaut. (b/150327080)
- La méthode onActivityCreated()est désormais obsolète. Le code touchant la vue du fragment doit être effectué dansonViewCreated()(appelé juste avantonActivityCreated()) et tout autre code d'initialisation dansonCreate(). Pour recevoir un rappel lorsque la méthodeonCreate()de l'activité est terminée, unLifeCycleObserverdoit être enregistré dans leLifecyclede l'activité dansonAttach(), puis supprimé une fois le rappelonCreate()reçu. (b/144309266)
Corrections de bugs
- Depuis Fragment 1.2.3: correction d'un bug dansDialogFragmentqui entraînait uneStackOverflowErrorlors de l'appel degetLayoutInflater()depuisonCreateDialog(). (b/117894767, aosp/1258664)
- Depuis Fragment 1.2.3: réduction du champ d'application des règles ProGuard incluses de Fragment pour que les classes Fragment inutilisées puissent être supprimées. (b/149665169)
- Depuis Fragment 1.2.3: correction des faux positifs dans la vérification lintUseRequireInsteadOfGetlors de l'utilisation d'un nom de variable locale qui occultait le nom de la propriété Kotlin. (b/149891163)
- Depuis Fragment 1.2.3:FragmentContainerViewne génère plus uneUnsupportedOperationExceptionen raison de l'utilisation d'un constructeur incorrect dans l'aperçu de mise en page. (b/149707833)
Problèmes connus
- BottomSheetDialogFragmentne positionne plus correctement sa boîte de dialogue à l'écran. (b/151652127)
Version 1.3.0-alpha01
4 mars 2020
Publication d'androidx.fragment:fragment:1.3.0-alpha01, androidx.fragment:fragment-ktx:1.3.0-alpha01 et androidx.fragment:fragment-testing:1.3.0-alpha01. Liste des commits de la version 1.3.0-alpha01
Nouvelles fonctionnalités
- Ajout de la prise en charge de l'API ViewTreeLifecycleOwner.get(View)ajoutée à Lifecycle2.3.0-alpha01, qui permet de renvoyer leviewLifecycleOwnerdu fragment en tant queLifecycleOwnerpour toutes les vues renvoyées paronCreateView(). (aosp/1182955)
Modifications apportées à l'API
- La méthode setRetainInstance()exécutée sur des fragments a été abandonnée. Avec l'introduction de ViewModels, les développeurs disposent d'une API spécifique pour conserver l'état, qui peut être associée aux graphiques d'Activity, Fragments et Navigation. Cela permet aux développeurs d'utiliser un fragment normal non conservé et de conserver l'état spécifique qu'ils souhaitent conserver séparément, évitant ainsi une source courante de fuites, tout en conservant les propriétés utiles de création et de destruction uniques de l'état conservé (à savoir, le constructeur deViewModelet le rappelonCleared()qu'il reçoit). (b/143911815)
- Avec le lancement de ViewPager2 1.0.0, les classesFragmentPagerAdapteretFragmentStatePagerAdapterpermettant d'interagir avecViewPageront été abandonnées. Consultez Effectuer une migration de ViewPager vers ViewPager2. (b/145132715)
Corrections de bugs
- Désormais, les règles ProGuard de Fragment conservent uniquement les classes Fragmentdes constructeurs par défaut qui sont utilisées, et non celles de toutes les instancesFragment, ce qui corrige une régression introduite dans Fragment1.2.1. (b/149665169
- Les règles lint require___()ajoutées dans Fragment1.2.2n'engendrent plus de faux positifs sur les variables locales qui portent le même nom que les noms de propriété Kotlin occultés (par exemple,view). (b/149891163)
- FragmentContainerViewne génère plus de- UnsupportedOperationExceptionlors de l'utilisation de l'aperçu de mise en page dans Android Studio. (b/149707833)
- Correction du problème pour lequel les fragments conservés qui étaient ajoutés après l'enregistrement de l'état n'étaient pas continuellement recréés, puis détruits après chaque modification de configuration. (b/145832397)
Version 1.2.5
Version 1.2.5
10 juin 2020
Publication d'androidx.fragment:fragment:1.2.5, androidx.fragment:fragment-ktx:1.2.5 et androidx.fragment:fragment-testing:1.2.5. Liste des commits de la version 1.2.5
Corrections de bugs
- Le getViewLifecycleOwner()du fragment est maintenant arrêté avant l'appel deonSaveInstanceState(), reflétant le comportement du cycle de vie du fragment. Ce correctif a déjà été publié dans Fragment1.3.0-alpha04. (b/154645875)
- L'appel de setMenuVisibility(false)sur un fragment modifie désormais correctement la visibilité des menus fournis par ses fragments enfants. Ce correctif a déjà été publié dans Fragment1.3.0-alpha04. (b/153593580)
Version 1.2.4
Version 1.2.4
1er avril 2020
Publication d'androidx.fragment:fragment:1.2.4, androidx.fragment:fragment-ktx:1.2.4 et androidx.fragment:fragment-testing:1.2.4. Liste des commits de la version 1.2.4
Corrections de bugs
- Mise à jour des règles ProGuard de Fragment pour permettre l'obscurcissement des fragments conservés. (b/151605338)
- Désactivation de la règle lint FragmentLiveDataObservesur les classesDialogFragment, car leur cycle de vie et le cycle de vie de leur vue sont toujours synchronisés. Vous pouvez donc utiliserthisouviewLifecycleOwnerlors de l'appel deobserve. (b/151765086)
Version 1.2.3
Version 1.2.3
18 mars 2020
Publication d'androidx.fragment:fragment:1.2.3, androidx.fragment:fragment-ktx:1.2.3 et androidx.fragment:fragment-testing:1.2.3. Liste des commits de la version 1.2.3
Corrections de bugs
- Correction d'un bug dans DialogFragmentqui entraînait uneStackOverflowErrorlors de l'appel degetLayoutInflater()depuisonCreateDialog(). (b/117894767, aosp/1258665)
- Réduction du champ d'application des règles ProGuard incluses de Fragment pour que les classes Fragment non utilisées puissent être supprimées. (b/149665169)
- Correction des faux positifs dans la vérification lint UseRequireInsteadOfGetlors de l'utilisation d'un nom de variable locale qui occultait le nom de la propriété Kotlin. (b/149891163)
- FragmentContainerViewne génère plus de- UnsupportedOperationExceptionlors de l'utilisation du mauvais constructeur dans l'aperçu de mise en page. (b/149707833)
Version 1.2.2
Version 1.2.2
19 février 2020
Publication d'androidx.fragment:fragment:1.2.2, androidx.fragment:fragment-ktx:1.2.2 et androidx.fragment:fragment-testing:1.2.2. Liste des commits de la version 1.2.2
Nouvelles vérifications lint
- lint suggère d'utiliser le viewLifecycleOwneren tant queLifecycleOwnerdans les appels deOnBackPressedDispatcherdansonCreateView(),onViewCreated()etonActivityCreated(). (b/142117657)
- Ajout d'une vérification lint qui confirme que vous utilisez le bon debugImplementationlorsque vous utilisez l'artefactfragment-testing. (b/141500106)
- Les fragments suggèrent maintenant d'utiliser les méthodes require___()associées pour obtenir des messages d'erreur plus descriptifs au lieu decheckNotNull(get___()),requireNonNull(get___())ouget___()!!pour toutes les API de Fragment qui incluent à la fois ungetet unrequireéquivalent. (aosp/1202883)
Corrections de bugs
- Correction des fichiers ProGuard de Fragment pour éviter les avertissements R8 (b/148963981)
- Amélioration de la vérification lint existante qui suggère d'utiliser viewLifecycleOwnerlors de l'utilisation deobservepour gérer également la version de la méthode d'extensionobservedelivedata-ktx. (b/148996309)
- Correction de la mise en forme de la plupart des vérifications lint (aosp/1157012)
Contributions externes
- Merci à Zac Sweers d'avoir participé aux vérifications lint require___()pour le compte de Slack. (aosp/1202883)
Version 1.2.1
Version 1.2.1
5 février 2020
Publication d'androidx.fragment:fragment:1.2.1, androidx.fragment:fragment-ktx:1.2.1 et androidx.fragment:fragment-testing:1.2.1.  Liste des commits de la version 1.2.1
Corrections de bugs
- Le constructeur par défaut est désormais conservé par ProGuard pour les fragments ajoutés via les méthodes addetreplacequi utilisent une instanceClass(ou les versions corrigées de Kotlin). (b/148181315)
- FragmentStatePagerAdapteret- FragmentPagerAdapterne détectent plus les exceptions générées par- FragmentManagerlors de l'exécution de- finishUpdate(). (aosp/1208711)
- Correction d'un problème pour lequel FragmentManager.findFragment()ne fonctionnait pas avec les fragments ajoutés via la balise<fragment>. (b/147784323)
- Désormais, les fragments gonflés à l'aide de la balise <fragment>reçoivent toujours un appel àonInflate()avantonCreate()dans la mise en page. (aosp/1215856)
- L'appel de toString()sur une instanceFragmentManagerne génère plus deNullPointerExceptionlorsque l'activité est déjà détruite. (b/148189412)
Modifications de la dépendance
- Fragments 1.2.1dépend désormais de Lifecycle ViewModel SavedState2.2.0.
Version 1.2.0
Version 1.2.0
22 janvier 2020
Publication d'androidx.fragment:fragment:1.2.0, androidx.fragment:fragment-ktx:1.2.0 et androidx.fragment:fragment-testing:1.2.0.  Liste des commits de la version 1.2.0
Changements importants depuis la version 1.1.0
- FragmentContainerView : FragmentContainerViewest le conteneur fortement recommandé pour les fragments ajoutés de façon dynamique. Il remplace l'utilisation deFrameLayoutou d'autres mises en page. Il accepte aussi la mêmeclass, le mêmeandroid:nameet le mêmeandroid:tagfacultatif que la balise<fragment>, mais utilise uneFragmentTransactionnormale pour ajouter ce fragment initial, au lieu du chemin de code personnalisé utilisé par<fragment>.
- Délai de onDestroyView(): les fragments attendent maintenant la fin des animations de sortie, des transitions de framework de sortie et des transitions AndroidX (lorsque vous utilisez Transition1.3.0) avant d'appeleronDestroyView()
- add()et- replace()basés sur les classes : ajout de nouvelles surcharges de- add()et- replace()sur- FragmentTransaction, qui prennent une- Class<? extends Fragment>et un- Bundlefacultatif d'arguments. Ces méthodes utilisent votre- FragmentFactorypour construire une instance du fragment à ajouter. Des extensions Kotlin qui utilisent des types réifiés (- fragmentTransaction.replace<YourFragment>(R.id.container), par exemple) ont également été ajoutées à- fragment-ktx.
- Intégration de Lifecycle ViewModel SavedState : SavedStateViewModelFactoryest désormais la fabrique par défaut utilisée lorsque vous utilisezby viewModels(),by activityViewModels(), le constructeurViewModelProviderouViewModelProviders.of()avec un fragment.
- Nouvelles vérifications lint : ajout d'une nouvelle vérification lint qui garantit que vous utilisez getViewLifecycleOwner()lorsque vous observezLiveDatadepuisonCreateView(),onViewCreated()ouonActivityCreated().
- Abandon de getFragmentManager(): les méthodesgetFragmentManager()etrequireFragmentManager()sur Fragment ont été abandonnées et remplacées par une seule méthodegetParentFragmentManager(), qui renvoie leFragmentManagernon nul auquel le fragment est ajouté (vous pouvez utiliserisAdded()pour déterminer s'il peut être appelé de manière sécurisée).
- Abandon de FragmentManager.enableDebugLogging(): la méthode statiqueFragmentManager.enableDebugLogginga été abandonnée. FragmentManager respecte désormaisLog.isLoggable()pour la baliseFragmentManager, ce qui vous permet d'activer la journalisationDEBUGouVERBOSEsans recompiler votre application.
Problèmes connus
- Les fragments référencés uniquement via l'attribut classouandroid:namesur uneFragmentContainerViewne sont pas automatiquement conservés par ProGuard. Vous devez donc ajouter manuellement une règle de conservation pour chaque classe de fragment. (b/142601969)
- Lorsque vous ajoutez un NavHostFragmentà l'aide declassouandroid:nameen XML avecFragmentContainerView, vous ne pouvez pas utiliserfindNavController()dansonCreate()de votre activité. (b/142847973)
Version 1.2.0-rc05
8 janvier 2020
Publication d'androidx.fragment:fragment:1.2.0-rc05, androidx.fragment:fragment-ktx:1.2.0-rc05 et androidx.fragment:fragment-testing:1.2.0-rc05.  Liste des commits de la version 1.2.0-rc05
Corrections de bugs
- Correction d'une régression dans Fragment 1.2.0-rc04lors de l'utilisation de la balise<fragment>, qui provoquait un appel incorrect deonViewCreated()lors de la destruction de l'activité. (b/146290333)
- Désormais, la non-configuration des fragments ajoutés avec la balise <fragment>est effacée même s'ils n'apparaissent que parfois dans la mise en page (par exemple, uniquement en mode Paysage). Par conséquent, ces fragments sont désormais correctement déplacés versCREATED, même s'ils ne figurent pas dans votre mise en page, au lieu d'être instanciés et de ne jamais passer par aucune méthode de cycle de vie. (b/145769287)
Version 1.2.0-rc04
18 décembre 2019
Publication d'androidx.fragment:fragment:1.2.0-rc04, androidx.fragment:fragment-ktx:1.2.0-rc04 et androidx.fragment:fragment-testing:1.2.0-rc04.  Liste des commits de la version 1.2.0-rc04
Corrections de bugs
- Ajustement des animations de TRANSIT_FRAGMENT_OPEN,TRANSIT_FRAGMENT_CLOSEetTRANSIT_FRAGMENT_FADEpour éviter les problèmes visuels. (b/145468417)
Version 1.2.0-rc03
4 décembre 2019
Publication d'androidx.fragment:fragment:1.2.0-rc03, androidx.fragment:fragment-ktx:1.2.0-rc03 et androidx.fragment:fragment-testing:1.2.0-rc03.  Liste des commits de la version 1.2.0-rc03
Corrections de bugs
- Modification d'un changement de comportement involontaire : les fragments supprimés étaient toujours renvoyés par findFragmentById()/findFragmentByTag()pendant l'exécution des transitions et animations de sortie. (b/143982969, aosp/1167585)
- Les fragments enfants sont maintenant correctement arrêtés avant leurs parents lorsque l'activité contenante appelle onSaveInstanceState(). (b/144380645)
- Correction d'un problème pour lequel des vues étaient marquées comme INVISIBLEpar erreur après l'affichage d'un fragment masqué. (b/70793925)
- Les transitions d'éléments partagés de fragment gèrent désormais les vues ayant fait l'objet d'une rotation, d'une mise à l'échelle, etc. (b/142835261)
Mises à jour de la documentation
- Clarification de setUserVisibleHint()dans la documentation concernant les fonctionnalités abandonnées. (b/143897055)
- Amélioration de la documentation concernant setFragmentFactory()etgetFragmentFactory()pour indiquer plus clairement que la définition d'uneFragmentFactoryaffecte également les FragmentManagers enfants. (aosp/1170095)
Modifications de la dépendance
- Fragments dépend désormais de Lifecycle 2.2.0-rc03, Lifecycle ViewModel SavedState1.0.0-rc03et Activity1.1.0-rc03.
Version 1.2.0-rc02
7 novembre 2019
Publication d'androidx.fragment:fragment:1.2.0-rc02, androidx.fragment:fragment-ktx:1.2.0-rc02 et androidx.fragment:fragment-testing:1.2.0-rc02.  Liste des commits de la version 1.2.0-rc02
Corrections de bugs
- En Kotlin, le LintFix pour l'utilisation de getViewLifecycleOwner()lors de l'observation deLiveDataà partir deonCreateView(),onViewCreated()ouonActivityCreated()(introduit dans Fragment1.2.0-rc01) utilise désormais la syntaxe d'accès aux propriétés KotlinviewLifecycleOwnerau lieu degetViewLifecycleOwner(). (aosp/1143821)
Version 1.2.0-rc01
23 octobre 2019
Publication d'androidx.fragment:fragment:1.2.0-rc01, androidx.fragment:fragment-ktx:1.2.0-rc01 et androidx.fragment:fragment-testing:1.2.0-rc01.  Liste des commits de la version 1.2.0-rc01
Nouvelles fonctionnalités
- FragmentContainerViewaccepte désormais l'attribut- classen plus de- android:name, reflétant ainsi la fonctionnalité de la balise- <fragment>. (b/142722242)
- Ajout d'une nouvelle vérification lint qui garantit que vous utilisez getViewLifecycleOwner()lorsque vous observezLiveDatadepuisonCreateView(),onViewCreated()ouonActivityCreated(). (b/137122478)
Corrections de bugs
- Les rappels onDismissetonCancelsurDialogFragmentgarantissent désormais que laDialogInterfacequi leur est transmise est non nulle et quegetDialog()renvoie une valeur non nulle lors de leur exécution. (b/141974033)
- FragmentContainerViewajoute maintenant le fragment défini par- classou- android:namepour le gonflement, afin que- findFragmentById()et- findFragmentByTag()fonctionnent immédiatement après. (b/142520327)
- Correction d'une IllegalStateExceptiondansFragmentContainerViewen raison de l'enregistrement de l'état. (b/142580713)
- Correction d'une UnsupportedOperationExceptiondansFragmentContainerViewlorsque la classeFragmentContainerViewest obscurcie. (b/142657034)
Problèmes connus
- Les fragments référencés uniquement via l'attribut classouandroid:namesur uneFragmentContainerViewne sont pas automatiquement conservés par ProGuard. Vous devez donc ajouter manuellement une règle de conservation pour chaque classe de fragment. Nous avons désactivé la règle lint suggérant de passer àFragmentContainerViewjusqu'à la résolution du problème viaaapt2. (b/142601969)
Version 1.2.0-beta02
11 octobre 2019
Publication d'androidx.fragment:fragment:1.2.0-beta02, androidx.fragment:fragment-ktx:1.2.0-beta02 et androidx.fragment:fragment-testing:1.2.0-beta02.  Liste des commits de la version 1.2.0-beta02
Corrections de bugs
- Correction d'un problème en raison duquel la méthode onInflate()de Fragment ne recevait pas les attributs appropriés de la part deFragmentContainerView, ce qui empêchait par exemple d'utiliserNavHostFragment. (b/142421837)
Version 1.2.0-beta01
9 octobre 2019
Publication d'androidx.fragment:fragment:1.2.0-beta01, androidx.fragment:fragment-ktx:1.2.0-beta01 et androidx.fragment:fragment-testing:1.2.0-beta01.  Liste des commits de la version 1.2.0-beta01
Nouvelles fonctionnalités
- FragmentContainerViewpermet d'ajouter un fragment initial avec une prise en charge supplémentaire pour l'attribut XML- android:nameet l'attribut XML facultatif- android:tag. Contrairement à la balise- <fragment>,- FragmentContainerViewutilise une- FragmentTransactionstandard en arrière-plan pour ajouter le fragment initial, ce qui permet d'effectuer d'autres opérations- FragmentTransactionsur la- FragmentContainerViewet permet d'utiliser la liaison de vue pour la mise en page. (b/139830628, b/141177981)
- Fragments contient désormais un avertissement lint offrant une solution rapide pour remplacer <fragment>parFragmentContainerView. (b/139830056)
Corrections de bugs
- Correction d'une ClassCastExceptionlors de l'utilisation d'androidx.transition. (b/140680619)
- Lorsque vous utilisez Transition 1.3.0-beta01, les fragments attendent désormais la fin des transitionsandroidx.transition(en plus des animations et des transitions de framework, qui ont été corrigées respectivement dans Fragment1.2.0-alpha03et Fragment1.2.0-alpha02) avant de déclencheronDestroyView(). (aosp/1119841)
- Lorsque vous utilisez Transition 1.3.0-beta01, les fragments annulent désormais correctement les transitionsandroidx.transitionavant de lancer de nouvelles transitions/animations sur le même conteneur. (aosp/1119841)
- Correction d'un problème sur l'API 17 et versions antérieures lors de l'utilisation de transitions androidx.transitionsur la vue racine de votre fragment avecFragmentContainerView. (b/140361893)
- L'artefact fragment-testingdépend désormais d'AndroidX Test1.2.0, ce qui corrige une incompatibilité avec la dernière version d'Espresso 3.2.0. (b/139100149)
- Suppression de l'utilisation de Log.wdans FragmentManager. (aosp/1126468)
Problèmes connus
- La méthode onInflate()de Fragment ne reçoit pas les attributs appropriés de la part deFragmentContainerView, ce qui empêche par exemple d'utiliserNavHostFragment. (b/142421837)
Version 1.2.0-alpha04
18 septembre 2019
Publication d'androidx.fragment:fragment:1.2.0-alpha04, androidx.fragment-ktx:example:1.2.0-alpha04 et androidx.fragment:fragment-testing:1.2.0-alpha04.  Liste des commits de la version 1.2.0-alpha04
Modifications apportées à l'API
- Les méthodes getFragmentManager()etrequireFragmentManager()surFragmentont été abandonnées et remplacées par une seule méthodegetParentFragmentManager(), qui renvoie leFragmentManagernon nul auquel le fragment est ajouté (vous pouvez utiliserisAdded()pour déterminer si vous pouvez l'appeler de manière sécurisée). (b/140574496)
- La méthode statique FragmentManager.enableDebugLogginga été abandonnée. FragmentManager respecte désormaisLog.isLoggable()pour la baliseFragmentManager, ce qui vous permet d'activer la journalisationDEBUGouVERBOSEsans recompiler votre application. (aosp/1116591)
Corrections de bugs
- Désormais, les fragments sont correctement détruits lorsque les animations de sortie d'autres fragments sont en cours d'exécution. (b/140574199)
- Correction d'un problème pour lequel Fragments appelait Activity.findViewById()alors qu'il ne le faisait pas auparavant. (aosp/1116431)
Version 1.2.0-alpha03
5 septembre 2019
Publication d'androidx.fragment:fragment:1.2.0-alpha03, androidx.fragment:fragment-ktx:1.2.0-alpha03 et androidx.fragment:fragment-testing:1.2.0-alpha03.  Les commits inclus dans cette version sont disponibles sur cette page.
Modifications apportées à l'API
- FragmentContainerViewest désormais- final. (b/140133091)
Corrections de bugs
- FragmentContainerViewinverse désormais correctement l'ordre de dessin lorsque vous faites apparaître des fragments depuis la pile "Retour". (b/139104187)
- Correction d'un problème qui entraînait l'exécution d'une animation incorrecte lors de l'affichage d'un fragment et de l'ajout d'un nouveau fragment en même temps. (b/111659726)
- Les fragments attendent désormais la fin des transitions (en plus des animations, ce qui a été corrigé dans Fragment 1.2.0-alpha02) avant de déclencheronDestroyView(). (b/138741697)
Version 1.2.0-alpha02
7 août 2019
Publication d'androidx.fragment:fragment:1.2.0-alpha02, androidx.fragment:fragment-ktx:1.2.0-alpha02 et androidx.fragment:fragment-testing:11.2.0-alpha02.  Les commits inclus dans cette version sont disponibles sur cette page.
Nouvelles fonctionnalités
- SavedStateViewModelFactoryest désormais la fabrique par défaut utilisée lorsque vous utilisez- by viewModels(),- by activityViewModels(), le constructeur- ViewModelProviderou- ViewModelProviders.of()avec un- Fragment. (b/135716331)
- Les animations par défaut lorsque vous utilisez TRANSIT_FRAGMENT_OPEN,TRANSIT_FRAGMENT_CLOSEetTRANSIT_FRAGMENT_FADEavecsetTransitionsur unFragmentTransactionont été mises à jour pour correspondre aux animations utilisées par les activités sur les appareils Android 10. (aosp/1012812, aosp/1014730)
Modifications apportées à l'API
- Présente FragmentContainerViewcomme le conteneur fortement recommandé pour les fragments ajoutés de façon dynamique. Il remplace l'utilisation deFrameLayout, car il corrige les problèmes d'ordre de plan d'animation et d'encarts de fenêtre distribués à Fragments. (b/37036000, aosp/985243, b/136494650)
- Ajout d'une méthode statique FragmentManager.findFragment(View)pour récupérer le fragment contenant à partir d'une vue gonflée par un fragment. Une extension Kotlin est également disponible dansfragment-ktx. (aosp/1090757)
- Ajout de nouvelles surcharges pour add()etreplace()surFragmentTransaction, qui acceptent uneClass<? extends Fragment>et unBundlefacultatif d'arguments. Ces méthodes utilisent votreFragmentFactorypour construire une instance du fragment à ajouter. Des extensions Kotlin qui utilisent des types réifiés (fragmentTransaction.replace<YourFragment>(R.id.container), par exemple) ont également été ajoutées àfragment-ktx. (b/126124987)
- Des annotations @MainThreadont été ajoutées aux rappels de cycle de vie deFragment. (b/127272564)
- Les API liées au titre du fil d'Ariane sur FragmentTransactionetFragmentManager.BackStackEntryont été abandonnées. (b/138252944)
- La méthode setTransitionStylesurFragmentTransactiona été abandonnée. (aosp/1011537)
- Un grand nombre des méthodes dans FragmentManagerne sont plusabstract.FragmentManagerlui-même resteabstractet ne doit pas être directement instancié ni étendu. Vous ne devriez poursuivre que pour obtenir une instance existante degetSupportFragmentManager(),getChildFragmentManager(), etc.
Corrections de bugs
- Depuis Fragment 1.1.0-rc04: les fragments annulent désormais correctement les transitions reportées sur les fragments qui ont été affichés. (b/138251858)
- Depuis Fragment 1.1.0-rc03: correction d'un problème pour lequel l'appel depostponeEnterTransition()plusieurs fois avec un délai avant expiration n'annulait pas les délais avant expiration précédents. (b/137797118)
- Depuis Fragment 1.1.0-rc02: correction du plantage dansFragmentPagerAdapteretFragmentStatePagerAdapterlors de la suppression de l'élément actuel. (b/137209870)
- Les fragments attendent désormais la fin des animations avant de déclencher onDestroyView(). (b/136110528)
- Les animations de fragment issues des fragments enfants et de leurs descendants sont désormais correctement gérées lors de l'animation du fragment parent. (b/116675313)
- Correction d'une NullPointerExceptionlors de l'utilisation de transitions d'éléments partagés et de la combinaison d'une opération d'affichage et d'ajout. (b/120507394)
- Ajout d'une solution de contournement aux IllegalStateExceptions lors de l'utilisation deFragmentPagerAdapteretFragmentStatePagerAdapterdans des tests Robolectric. (b/137201343)
Version 1.2.0-alpha01
2 juillet 2019
Publication d'androidx.fragment:fragment:1.2.0-alpha01, androidx.fragment:fragment-ktx:1.2.0-alpha01 et androidx.fragment:fragment-testing:1.2.0-alpha01.  Les commits inclus dans cette version sont disponibles sur cette page.
Nouvelles fonctionnalités
- FragmentManager appelle désormais requestApplyInsets()après avoir associé la vue du fragment et directement avant d'appeleronViewCreated(), garantissant ainsi que la vue dispose toujours des encarts corrects. (b/135945162)
Corrections de bugs
- Correction d'une NullPointerExceptionlors de l'affichage d'uneFragmentTransactionutilisantsetPrimaryNavigationFragment()avantreplace(). (b/134673465)
Version 1.1.0
Version 1.1.0
5 septembre 2019
Publication d'androidx.fragment:fragment:1.1.0, androidx.fragment:fragment-ktx:1.1.0 et androidx.fragment:fragment-testing:1.1.0.  Les commits inclus dans cette version sont disponibles sur cette page.
Changements importants depuis la version 1.0.0
- fragment-testing : l'artefact fragment-testingfournit une classeFragmentScenariopermettant de tester un fragment de façon isolée. Pour en savoir plus, consultez la documentation sur le test des fragments de votre application.
- FragmentFactory : vous pouvez désormais définir une FragmentFactorysur unFragmentManagerpour gérer la création d'instances de fragment, en supprimant l'exigence stricte de disposer d'un constructeur sans argument.
- Délégués de propriété Kotlin pour ViewModels : l'artefact fragment-ktxcontient désormais deux délégués de propriété Kotlin :by viewModels()pour accéder aux ViewModels associés au fragment individuel etby activityViewModels()pour accéder aux ViewModels limités à l'activité.
- Cycle de vie maximal : vous pouvez désormais définir un état de cycle de vie maximal pour un fragment en appelant setMaxLifecycle()sur uneFragmentTransaction. Cela remplacesetUserVisibleHint(), désormais obsolète.FragmentPagerAdapteretFragmentStatePagerAdapterdisposent d'un nouveau constructeur qui vous permet de passer au nouveau comportement.
- Constructeur FragmentActivity LayoutId : les sous-classes de FragmentActivitypeuvent désormais appeler facultativement un constructeur surFragmentActivityqui accepte un IDR.layout, indiquant la mise en page à définir en tant que vue de contenu, comme alternative à l'appel desetContentView()dansonCreate(). Cela ne change pas l'obligation pour votre sous-classe d'avoir un constructeur sans argument.
- Constructeur Fragment LayoutId : les sous-classes de Fragmentpeuvent désormais appeler facultativement un constructeur surFragmentqui accepte un IDR.layout, indiquant la mise en page à utiliser pour ce fragment comme alternative au remplacement deonCreateView(). Vous pouvez configurer la mise en page gonflée dansonViewCreated().
- Report avec un délai avant expiration : une nouvelle surcharge de postponeEnterTransition()a été ajoutée et accepte un délai avant expiration.
Version 1.1.0-rc04
7 août 2019
Publication d'androidx.fragment:fragment:1.1.0-rc04, androidx.fragment:fragment-ktx:1.1.0-rc04 et androidx.fragment:fragment-testing:1.1.0-rc04.  Les commits inclus dans cette version sont disponibles sur cette page.
Corrections de bugs
- Les fragments annulent désormais correctement les transitions reportées sur les fragments qui ont été affichés. (b/138251858)
Version 1.1.0-rc03
19 juillet 2019
Publication d'androidx.fragment:fragment:1.1.0-rc03, androidx.fragment:fragment-ktx:1.1.0-rc03 et androidx.fragment:fragment-testing:1.1.0-rc03.  Les commits inclus dans cette version sont disponibles sur cette page.
Corrections de bugs
- Correction d'un problème pour lequel l'appel de postponeEnterTransition()plusieurs fois avec un délai avant expiration n'annulait pas les délais avant expiration précédents. (b/137797118)
Version 1.1.0-rc02
17 juillet 2019
Publication d'androidx.fragment:fragment:1.1.0-rc02, androidx.fragment:fragment-ktx:1.1.0-rc02 et androidx.fragment-testing:fragment:1.1.0-rc02.  Les commits inclus dans cette version sont disponibles sur cette page.
Corrections de bugs
- Correction d'un plantage dans FragmentPagerAdapteretFragmentStatePagerAdapterlors de la suppression de l'élément actuel. (b/137209870)
Version 1.1.0-rc01
2 juillet 2019
Publication d'androidx.fragment:fragment:1.1.0-rc01, androidx.fragment:fragment-ktx:1.1.0-rc01 et androidx.fragment:fragment-testing:1.1.0-rc01.  Les commits inclus dans cette version sont disponibles sur cette page.
Corrections de bugs
- Désormais, les fragments mettent correctement à jour leur visibilité lors de l'utilisation d'opérations show()ouhide()alors que la transition est exécutée. (b/133385058)
- Correction d'une NullPointerExceptionlors de l'affichage d'uneFragmentTransactionutilisantsetPrimaryNavigationFragment()avantreplace(). (b/134673465)
Version 1.1.0-beta01
5 juin 2019
Publication d'androidx.fragment:fragment:1.1.0-beta01, androidx.fragment:fragment-ktx:1.1.0-beta01 et androidx.fragment:fragment-testing:1.1.0-beta01.  Les commits inclus dans cette version sont disponibles sur cette page.
Corrections de bugs
- Les rappels androidx.lifecycle.Lifecycle(spécifiquement liés àSTARTED,RESUMED,PAUSED,STOPPEDetDESTROYED) pour les fragments imbriqués sont désormais correctement imbriqués. (b/133497591)
- Les instances OnBackPressedCallbackenregistrées dans leonCreate()d'un fragment ont désormais correctement priorité sur le FragmentManager enfant. (b/133175997)
- Les fragments enfants ne sont plus animés lorsque leur fragment parent est remplacé. (b/121017790)
- Les animations et les transitions de fragment sont désormais ignorées lors de l'utilisation de animateLayoutChanges="true", ce qui corrige un problème de destruction des fragments. (b/116257087)
Version 1.1.0-alpha09
16 mai 2019
Publication d'androidx.fragment:fragment:1.1.0-alpha09, androidx.fragment:fragment-ktx:1.1.0-alpha09 et androidx.fragment:fragment-testing:1.1.0-alpha09.  Les commits inclus dans cette version sont disponibles sur cette page.
Modifications apportées à l'API
- Les fragments reçoivent maintenant un rappel vers une nouvelle méthode onPrimaryNavigationFragmentChanged(boolean)lorsque le fragment de navigation principal change. aosp/960857
Corrections de bugs
- Les éléments de menu gonflés par un fragment enfant sont désormais correctement supprimés lorsque le fragment parent est supprimé. b/131581013
Version 1.1.0-alpha08
7 mai 2019
Publication d'androidx.fragment:fragment:1.1.0-alpha08, androidx.fragment:fragment-ktx:1.1.0-alpha08 et androidx.fragment:fragment-testing:1.1.0-alpha08.  Les commits inclus dans cette version sont disponibles sur cette page.
Cette version n'est pas compatible avec Preferences 1.1.0-alpha01 à 1.1.0-alpha04. Veuillez passer à Preferences 1.1.0-alpha05 lorsque vous utilisez cette version de Fragments.
Nouvelles fonctionnalités
- Ajout d'une surcharge associée à postponeEnterTransition(), qui accepte un délai avant expiration, au bout duquel le fragment appelle automatiquementstartPostponedEnterTransition()b/120803208
Modifications apportées à l'API
- Modification destructive : la méthode FragmentFactoryinstantiatequi a été précédemment abandonnée et qui acceptait unBundlea été supprimée. aosp/953856
- Modification destructive : les constantes RESUME_ONLY_CURRENT_FRAGMENTetUSE_SET_USER_VISIBLE_HINTdansFragmentPagerAdapteretFragmentStatePagerAdapteront été renommées respectivement enBEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENTetBEHAVIOR_SET_USER_VISIBLE_HINT. aosp/954782
Corrections de bugs
- Les fragments dont le cycle de vie était limité via setMaxLifecycle()ne sont plus réactivés avant d'atteindre leur état final. b/131557151
- Lorsque vous utilisez setMaxLifecycle(Lifecycle.State.CREATED), la vue des fragments est correctement détruite. aosp/954180
Version 1.1.0-alpha07
25 avril 2019
Publication d'androidx.fragment:fragment:1.1.0-alpha07, androidx.fragment:fragment-ktx:1.1.0-alpha07 et androidx.fragment:fragment-testing:1.1.0-alpha07.  Les commits inclus dans cette version sont disponibles sur cette page.
Nouvelles fonctionnalités
- Vous pouvez désormais définir un état de cycle de vie maximal pour un fragment en appelant setMaxLifecycle()sur uneFragmentTransaction. Cela remplacesetUserVisibleHint(), désormais obsolète.FragmentPagerAdapteretFragmentStatePagerAdapterdisposent d'un nouveau constructeur qui vous permet de passer au nouveau comportement. (b/129780800)
Modifications apportées à l'API
- moveToState(STARTED)sur- FragmentScenarione peut désormais être appelé que sur les appareils utilisant l'API 24 ou une version ultérieure. (b/129880016)
Nouveaux comportements
- En raison de (b/129907905), les fragments de la pile "Retour" n'obtiendront pas un rappel à onCreateView()lorsque l'activité d'hébergement est recréée.onCreateView()est désormais appelé uniquement lorsque le fragment devient visible (c.-à-d. que la pile "Retour" est affichée).
Corrections de bugs
- Correction d'un problème lors de l'utilisation d'une balise <fragment>en XML et du constructeurcontentLayoutIddeFragmentActivityouAppCompatActivity. (b/129907905)
- Correction d'un problème en raison duquel des fragments de la pile "Retour" n'étaient pas déplacés au moins jusqu'à l'état CREATEDaprès une modification de configuration, ce qui empêchait la bonne suppression des ViewModels et des fragments enfants conservés. (b/129593351)
- Correction d'un plantage de restoreSaveStatecausé par une désynchronisation des fragments conservés après l'enregistrement de l'état de l'instance. (b/130433793) (aosp/947824)
- Correction de problèmes pour lesquels un OnBackPressedCallbackajouté avec un cycle de vie de fragment n'était pas appelés si leFragmentManagerdisposait d'une pile "Retour". Pour plus d'informations, consultez androidx.activity 1.0.0-alpha07. (aosp/948209)
- Les fragments ne forcent plus l'application de LAYER_TYPE_HARDWAREpour les animations. Si vous avez besoin d'une animation de couche matérielle, veuillez l'intégrer dans votre animation. (b/129486478)
Version 1.1.0-alpha06
3 avril 2019
Publication d'androidx.fragment:fragment:1.1.0-alpha06, androidx.fragment:fragment-ktx:1.1.0-alpha06 et androidx.fragment:fragment-testing:1.1.0-alpha06.  Les commits inclus dans cette version sont disponibles sur cette page.
Nouvelles fonctionnalités
- Les exceptions générées par FragmentManager incluent désormais le nom du fragment dans le message. (b/67759402)
Modifications apportées à l'API
- Fragmentet- FragmentActivitycontiennent désormais un deuxième constructeur qui accepte un- @LayoutRes intet qui remplace le comportement précédent d'annotation de votre classe par- @ContentView. Cette approche fonctionne dans les modules d'application et de bibliothèque. (b/128352521)
- Le champ onActivityResult()de FragmentActivity est désormais correctement marqué comme@CallSuper. (b/127971684)
- La méthode instantiatede FragmentFactory qui accepte un lot d'arguments a été abandonnée, et les applications doivent utiliser la nouvelle surchargeinstantiatequi n'accepte pas de lot. (b/128836103)
- Les méthodes FragmentScenariosont désormais correctement annotées avec@StyleRes. (aosp/924193)
- FragmentTabHostest maintenant obsolète. (b/127971835)
- L'élément getThemedContext()de FragmentActivity a été supprimé. (aosp/934078)
Corrections de bugs
- Correction d'une régression dans la version 1.1.0-alpha05 qui entraînait le clignotement du fragment entrant à l'écran. (b/129405432)
- Correction d'un problème pour lequel le fragment de navigation principal était perdu après une série d'opérations popBackStack+replace+popBackStack. (b/124332597)
- Correction d'un problème lié à l'utilisation de constructeurs @ContentViewsur votre activité lors de la restauration de l'état de fragment. (b/127313094)
- Correction de la logique de setTargetFragment()lors du remplacement d'un fragment cible existant par un fragment qui n'était pas encore associé à FragmentManager. (aosp/932156)
Version 1.1.0-alpha05
13 mars 2019
Publication d'androidx.fragment:fragment:1.1.0-alpha05, androidx.fragment:fragment-ktx:1.1.0-alpha05 et androidx.fragment:fragment-testing:1.1.0-alpha05.  La liste complète des commits inclus dans cette version est disponible sur cette page.
Nouvelles fonctionnalités
- Les recherches d'annotations de @ContentViewsont désormais mises en cache. (b/123709449)
Nouveaux comportements
- L'appel de remove(),hide(),show(),detach()etsetPrimaryNavigationFragment()avec un fragment associé à un autre FragmentManager génère désormais uneIllegalStateExceptionplutôt qu'un échec silencieux (aosp/904301)
Corrections de bugs
- onNewIntentpour- FragmentActivityest maintenant correctement marqué avec- @CallSuper(b/124120586)
- Correction d'un problème pour lequel la méthode onDismiss()deDialogFragmentpouvait être appelée deux fois lors de l'utilisation degetDialog().dismiss()ougetDialog().cancel()(b/126563750).
Version 1.1.0-alpha04
7 février 2019
Publication d'androidx.fragment:fragment 1.1.0-alpha04, androidx.fragment:fragment-ktx 1.1.0-alpha04 et androidx.fragment:fragment-testing 1.1.0-alpha04.
Nouvelles fonctionnalités
- Ajout de la prise en charge de l'annotation de classe @ContentView, qui vous permet d'indiquer le fichier XML de mise en page à gonfler au lieu de remplaceronCreateView(). Nous vous recommandons de consulter les tâches associées à la vue dansonViewCreated(). (aosp/837619)
- fragment-testingdépend désormais de- androidx.test:core-ktx1.1.0 stable (b/121209673)
- Vous pouvez désormais utiliser openActionBarOverflowOrOptionsMenuavecFragmentScenariopour tester les menus d'options hébergés par Fragment (b/121126668).
Modifications apportées à l'API
- Ajout d'une méthode requireArguments()qui renvoie un@NonNull Bundleou génère uneIllegalStateException(b/121196360)
- Ajout d'une remarque indiquant que les méthodes getLifecycle(),getViewLifecycleOwner()etgetViewLifecycleOwnerLiveData()ne doivent pas être remplacées et deviendront finales dans une prochaine version. Veuillez envoyer une demande de fonctionnalité si vous remplacez actuellement cette méthode. (aosp/880714)
- Ajout d'une remarque indiquant que la méthode getViewModelStore()ne doit pas être remplacée et deviendra finale dans une prochaine version. Veuillez envoyer une demande de fonctionnalité si vous remplacez actuellement cette méthode. (aosp/880713)
- Correction d'un problème de compatibilité binaire avec les versions précédentes de Fragments. (aosp/887877) (aosp/889834)
Corrections de bugs
- Les fragments cibles sont correctement effacés lorsque vous transmettez nullàsetTargetFragment(). (aosp/849969)
- Correction d'un problème pour lequel des fragments cibles étaient parfois indisponibles dans ou après onDestroy(). (b/122312935)
- La méthode onDismiss() de DialogFragment est maintenant appelée avant onDestroy(). (aosp/874133) (aosp/890734)
Version 1.1.0-alpha03
17 décembre 2018
Nouvelles fonctionnalités
- Fragment implémente désormais BundleSavedStateRegistryOwneret dépend de la bibliothèque SavedState nouvellement publiée [aosp/824380]
- Un délégué de propriété Kotlin by activityViewModelsa été ajouté pour récupérer les ViewModels associés à l'activité contenante [b/119050253]
- Le délégué de propriété Kotlin by viewModelsa été étendu pour intégrer une méthode lambda facultative permettant d'obtenir leViewModelStoreOwner, ce qui vous permet de transmettre le fragment parent ou un autreViewModelStoreOwnerpersonnalisé avec du code tel queval viewModel: MyViewModel by viewModels(::requireParentFragment)[b/119050253]
Modifications apportées à l'API
- FragmentScenariovous permet désormais de spécifier un thème tel que- Theme.AppCompat[b/119054431]. Il s'agit d'une modification destructive.
- Ajout d'une méthode requireView()qui renvoie une@NonNull Viewou génère uneIllegalStateException[b/120241368]
- Ajout d'une méthode requireParentFragment()qui renvoie un@NonNull Fragmentou génère uneIllegalStateException[b/112103783]
Corrections de bugs
- Correction d'une IllegalStateException : échec de l'enregistrement de l'état b/120814739
- Désormais, les fragments restaurés à partir de l'état d'instance enregistré reçoivent toujours un Bundlenon nul [b/119794496]
- Les fragments supprimés ne réutilisent plus leur objet Lifecycles'ils sont de nouveau ajoutés [b/118880674]
Version 1.1.0-alpha02
3 décembre 2018
Nouvelles fonctionnalités
- Les extensions Kotlin de FragmentScenario vous permettent désormais d'utiliser un lambda pour la construction de fragments au lieu de transmettre une instance FragmentFactory. (aosp/812913)
Corrections de bugs
- Correction d'une IllegalStateException lors de l'utilisation de fragments imbriqués dans la pile "Retour" (b/119256498)
- Correction du plantage lors de l'utilisation de FragmentScenario.recreate()avec uneFragmentFactory(aosp/820540)
- Correction d'un problème qui empêchait les fragments cibles d'être accessibles après la suppression du fragment (aosp/807634)
Version 1.1.0-alpha01
5 novembre 2018
Il s'agit de la première version de l'artefact fragment-testing et de FragmentScenario, basés sur les API androidx.test:core.  Pour en savoir plus, consultez la documentation sur les tests de fragment.
Nouvelles fonctionnalités
- Nouvelle classe FragmentScenario pour tester des fragments de manière isolée.
- Vous pouvez maintenant définir une FragmentFactorysur n'importe quelFragmentManagerpour contrôler la façon dont les nouvelles instances de fragment sont instanciées.
- Ajout d'un délégué de propriété Kotlin by viewModels()pour récupérer les ViewModels à partir d'un fragment.
- Les événements d'entrée en attente (tels que les clics) sont maintenant annulés dans la méthode onStop()d'un fragment.
Modifications apportées à l'API
- Développement important des annotations de possibilité de valeur nulle sur la surface de l'API Fragment.
Corrections de bugs
- Correction d'un problème qui entraînait l'échec des opérations de fragment au sein de LiveData (b/77944637)
Problèmes connus
- Les fragments cibles ne sont plus accessibles après la suppression d'un fragment de FragmentManager.
- fragment-testingdépend d'- androidx.test:core:1.0.0-beta01au lieu de la version correcte- androidx.test:core:1.0.0.
