IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Appeler un nouveau fragment à l'intérieur d'un fragment


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut Appeler un nouveau fragment à l'intérieur d'un fragment
    Bonjour à tous,

    J'aimerai connaitre les best practice concernant le chargement d'un fragment à l'intérieur d'un fragment. En effet j'ai un fragment qui contient une listview et ce que je souhaiterai faire c'est ajouter un nouveau fragment à l'appel du onItemListClick. Pour moi il y a deux façon de faire, soit par une interface, le nouveau fragment sera ajouté depuis l'activity ou bien dans le fragment en lui même en appelant getActivity.getSupportFragmentManager etc..

    Etant donnée qu'il y a deux façon de réaliser l'ajout d'un nouveau fragment, quelle est la meilleur solution ?

    Merci

  2. #2
    Membre expérimenté Avatar de Altak
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 170
    Par défaut
    Bonjour,

    Je sais pas si c'est une Best practice (je suis d’ailleurs aussi intéressé par la réponse) mais je fonctionne avec une interface.
    Pour moi, le fragment ne doit gérer que ce qui se trouve dans sa zone et rien d'autre et c'est mon activity qui s'occupe de faire la transition entre mes différents fragments
    (je vois le fragment comme un mini contrôleur et l'activity comme un contrôleur de contrôleur ).
    J'ai donc créé une Interface qui me permet d'appeler des callbacks se trouvant dans mon activity (je fonctionne énormément par callback).

    GLHF

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut
    oui effectivement on évite le couplage entre fragment, jusqu'à maintenant je fonctionnais comme toi avec des appels par interface mais mon application possède une activity principale et tous le reste ce sont en effet des fragments. Du coup mon Activity est bien rempli par les implémentations

  4. #4
    Membre expérimenté Avatar de Altak
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 170
    Par défaut
    Re,

    Ba tu peux avoir 2 solutions qui s'offre a toi (j'ai eu le même soucis):
    -Tu créer une interface/Activity : Si tu as par exemple totoActivity et toto2Activity, tu peux créer totoInterface et toto2Interface. Le soucis, c'est que tu perd en modulabilité (tu ne pourra du coup pas utiliser les fragment de toto dans toto2 par exemple).
    -Tu créer une interface qui contient des fonction génériques: tu créer une fonction "Show(fragment)" dans ton interface et tu l’implémente spécifiquement dans chacune de tes Activity. Tu peux ajouter des paramètre a cette fonction pour y spécifier un code unique a chaque fragment. Du genre "Show(Enum codeSource, ArrayList<?> dataToSend)"...
    Enfin libre a toi de mettre les paramètres que tu veux a tes fonctions génériques. Le but étant que tu puisse les utiliser dans plusieurs activity (tu peux créer une totoActivity qui n'aura pas la même implémentation de "Show(param1, param2 ...)" que toto2Activity). Ce qui te permet ainsi de travailler avec plusieurs activity.

    Pour ma part, je travaille actuellement avec 6 activity regroupé par theme. Elles extends toutes d'une BaseActivity qui regroupe toute les fonctions qui sont commune et elles implements une CallbacksInterface qui regroupe les fonctions de callback que j'utilise dans mes fragments et qui sont spécifique a chaque Activity.

    GLHF

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut
    Merci beacoup Altak pour avoir partagé ton expérience.
    Je ne sais pas si tu a déjà testé otto ou event bus mais c'est un bon moyen de ne pas utiliser les interfaces pour communiquée avec l'activity.

    A part cette parenthèse avez vous déjà vécu le même problème que moi et Altak ?

  6. #6
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Salut,

    Je pense que la méthode d'Attak est la plus classique, après a toi de voir si tu veux des listeners callback ou bien comme otto et autres passé par des Handlers/ Message à toi de voir.

    De toute manière le changement de fragment doit se faire sur celui qui contient le layout du fragment soit l'Activité. Si c'est un fragment dans un fragment alors depuis le Fragment.

    De plus les navigations des fragments doivent être gérées quelque part donc centralise tout sinon tu vas être perdu .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 04/05/2021, 13h23
  2. Réponses: 1
    Dernier message: 22/04/2015, 13h39
  3. Réponses: 3
    Dernier message: 04/12/2013, 10h55
  4. Faire appel à un nouveau agent en NS2
    Par yosramah dans le forum Réseau
    Réponses: 0
    Dernier message: 13/05/2013, 11h43
  5. Réponses: 2
    Dernier message: 16/02/2007, 18h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo