Maison > Java > javaDidacticiel > Pourquoi mes fragments ne se remplacent-ils pas dans mon groupe d'activités Android ?

Pourquoi mes fragments ne se remplacent-ils pas dans mon groupe d'activités Android ?

Susan Sarandon
Libérer: 2024-11-25 06:20:15
original
535 Les gens l'ont consulté

Why Aren't My Fragments Replacing Each Other in My Android Activity Group?

Remplacement de fragments dans des groupes d'activités

Remplacer des fragments dans un groupe d'activités peut être une tâche complexe si vous n'êtes pas familier avec le framework de fragmentation Android .

Le problème

Lors de la tentative de remplacement un fragment à l'intérieur d'un groupe d'activités avec un autre fragment, vous pouvez rencontrer une situation dans laquelle le code semble s'exécuter correctement, mais aucun changement visuel ne se produit. Cela peut être déroutant, car aucun message d'exception n'est affiché.

La solution

Le problème vient du fait que les fragments codés en dur en XML ne peuvent pas être remplacés. Au lieu de cela, les fragments doivent être ajoutés dynamiquement pour permettre le remplacement.

Pour ajouter et remplacer dynamiquement des fragments :

  1. Créez une mise en page ou un conteneur (par exemple, fragment_container) dans l'activité qui contiendra les fragments.
  2. Créez une nouvelle instance de fragment.
  3. Créez un FragmentTransaction à l'aide de getSupportFragmentManager().
  4. Utilisez transaction.replace() pour remplacer le fragment actuel dans fragment_container par le nouveau fragment.
  5. Ajoutez la transaction à la pile arrière à l'aide de transaction.addToBackStack(null ) si vous le souhaitez.
  6. Validez la transaction en utilisant transaction.commit().

Exemple de code

Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();
Copier après la connexion

Remarque :

  • Fragments qui sont ajoutés via la mise en page XML ne peuvent pas être remplacés.
  • Le R.id.fragment_container peut être n'importe quelle disposition ou conteneur approprié dans l'activité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal