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

Composants graphiques Android Discussion :

[Tutoriel] Utiliser les fragments pour créer des interfaces plus riches sous Honeycomb [Tutoriel]


Sujet :

Composants graphiques Android

  1. #1
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Points : 1 499
    Points
    1 499
    Par défaut [Tutoriel] Utiliser les fragments pour créer des interfaces plus riches sous Honeycomb
    Bonjour,

    Voici mon dernier tutoriel, dont le but est de vous apprendre comment afficher plusieurs Activity simultanément dans une application pour Android 3.0+.

    Je reste à votre disposition si vous avez des questions ou des suggestions.
    Ingénieur Développement Mobile (Android / Windows Phone / Blackberry10)

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Points : 494
    Points
    494
    Par défaut
    Merci pour ce tutoriel pour apprendre Android, J'en avais entendu parlé mais je ne savais pas comment on mettait ce système en place.

    PS : Ton appli a l'air super joli (j'aime bien les barres pour les valeurs mais je me demande comment tu les as fait), mais bon... dommage je préfère DotA :p (tu veux pas faire la même ?)

  3. #3
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Points : 1 499
    Points
    1 499
    Par défaut
    Merci

    [Publicité]Elle est dispo ici [/Publicité]

    Sinon pour les bars j'ai fait simple : un LinearLayout horizontal, et une ImageView pour chaque petite case, avec le cas particulier de la première et de la dernière ayant une image différente. Ensuite tu répètes ce processus pour chaque barre, en changeant la couleur (d'images dans mon cas).

    Et Dota ça commence à dater, place aux jeunes. ^^
    Ingénieur Développement Mobile (Android / Windows Phone / Blackberry10)

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Merci pour ce tuto très intéressant.

    Je me demandais justement comment je pourrais faire un découpage de vue.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Merci le Tuto est excellent!
    J'ai cependant quelques difficultés à faire inter agir deux Activités à travers les fragments..
    Est-il possible d'avoir le détail du code de la méthode : afficherDetail(Uri objet) dans le Fragment DetailFragment du tuto ?

    Merci.

  6. #6
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Points : 1 499
    Points
    1 499
    Par défaut
    Bonsoir,

    Dans afficherDetail(Uri uri) j'utilise mon paramètre pour savoir comment remplir mes layouts, exactement comme je le ferai dans une nouvelle Activity recevant le paramètre depuis l'Intent. Tu récupères tes views de ton layout (avec un findViewById) et tu remplis.

    Je ne peux te donner le code de la méthode, tout simplement parce qu’elle n'existe pas chez moi (le tutoriel est une version très simplifiée d'une de mes applications).
    Ingénieur Développement Mobile (Android / Windows Phone / Blackberry10)

  7. #7
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Viish Voir le message
    Bonsoir,

    Dans afficherDetail(Uri uri) j'utilise mon paramètre pour savoir comment remplir mes layouts, exactement comme je le ferai dans une nouvelle Activity recevant le paramètre depuis l'Intent. Tu récupères tes views de ton layout (avec un findViewById) et tu remplis.

    Je ne peux te donner le code de la méthode, tout simplement parce qu’elle n'existe pas chez moi (le tutoriel est une version très simplifiée d'une de mes applications).
    Bonjour,

    Merci de la réponse, je vais continuer à chercher, j'ai un soucis avec le findViewById dans le Fragment -> nullPointerException...

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Android
    Inscrit en
    Août 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Android

    Informations forums :
    Inscription : Août 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Petite question sur le layout
    Hello,


    Merci pour cet excellent tuto. J'aurai cependant une question sur la gestion du layout.

    Le fichier menu_fragment.xml existe-t'il toujours dans la deuxième partie? Ou est-il remplacé dans le fichier menu.xml?

    Merci beaucoup pour la réponse et pour le tuto.


    J'ai un peu fouillé encore le tuto, mais je comprend pas du tout la gestion du layout en fait. Le layout menu.xml étant totalement rempli par des fragments à quel moment tu gères les 2 layouts pour menu et detail?

    Pardon pour ces questions, mais je suis débutant bien entendu en java et android, mais après avoir un peut testé ton tuto, il ne me semble pas vraiment utilisable en l'état pour bon fonctionnement. Juste?

    Merci en tout cas.

  9. #9
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Tuto très utile, d'autant qu'un certain nombre de fonctions sont utilisables sous 2.3 (compatibility library)
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  10. #10
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 169
    Points : 171
    Points
    171
    Par défaut
    Bonjour,
    Pour l'instant je n'ai jamais utilisé de fragments et je souhaite les utiliser à travers une de mes activités déjà créée.
    Le problème est que je ne comprend pas le principe derrière l’implémentation des Fragments.

    Le code de mon activity je dois le mettre dans le Fragment maintenant ?
    Il reste quoi dans l'Activity ?

    D'avance merci pour votre aide

  11. #11
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    Merci pour ce tutoriel.

    Utilisant la librairie de compatibilité (car en API 8), impossible d'utiliser le principe.
    J'avais l'erreur suivante :
    Binary XML file line #2: Error inflating class fragment

    Après quelques recherches, dans l'activité qui va gérer l'ensemble des fragments, il ne faut pas qu'elle étende "Activity" mais "FragmentActivity".

    Avec les codes sources, ça serait super bien ^^.

  12. #12
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 77
    Points : 40
    Points
    40
    Par défaut
    Bonjour,

    Merci pour le tuto, très jolie application
    Je voudrais utiliser les fragments pour maintenir mon tabbar même si je change d'activité dans le même tab. Pouvez-vous me guider svp??

  13. #13
    Membre habitué Avatar de JQueen
    Inscrit en
    Octobre 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2008
    Messages : 214
    Points : 126
    Points
    126
    Par défaut
    Bonjour,

    C'est un excellent tutoriel Android , dans lequel vous avez montré l'utilité des fragments dans l'affichage de plusieurs activités sur le même écran. Est-ce que c'est la seule utilité ?

    En fait, je suis en train de développer une petite application contenant des onglets (TabHost) et j'ai un soucis avec la navigation entre ces différents onglets (voir cette discussion : http://www.developpez.net/forums/d12...glets-tabhost/

    En réponse, on m'a indiqué les Fragments comme solution, mais je ne vois pas comment. Je serai vraiment très reconnaissante si vous me donner quelques éclaircissements

    Merci

  14. #14
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Points : 1 499
    Points
    1 499
    Par défaut
    Bonjour,

    Non, l'utilité des fragments ne se situe pas que pour afficher plusieurs morceaux d'interface en parallèle. Ils sont utilisé pour les dialogs (depuis peu), pour plusieurs widget (comme le ViewPager), etc...
    En utilisant ce dernier widget par exemple, il devient très simple de naviguer d'un fragment à un autre, par gesture ou par n'importe quoi d'autre (une liste, des boutons, ...)
    Cette librarie utilise justement le ViewPager et l'étend pour y ajouter un contrôle ressemblant beaucoup au TabHost.

    Bonne continuation.
    Ingénieur Développement Mobile (Android / Windows Phone / Blackberry10)

  15. #15
    Membre habitué Avatar de JQueen
    Inscrit en
    Octobre 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2008
    Messages : 214
    Points : 126
    Points
    126
    Par défaut
    Merci pour votre réponse rapide

    Donc, si j'ai bien compris, la meilleure solution pour mon besoin est la classe ViewPager ?
    Par contre là, je veux adapter les Fragments au TabHost, je ne veux pas jeter tout le code que j'ai écrit

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Désoler du déterrer ce post, mais incluant le code dans le xml menu, j'ai une erreur : " Binary XML file line #7 : Error inflating class fragment "...

    Serait t'il possible d'avoir aussi les sources du tuto ?

  17. #17
    Membre chevronné
    Avatar de tails
    Homme Profil pro
    Inscrit en
    Novembre 2003
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 799
    Points : 2 148
    Points
    2 148
    Billets dans le blog
    15
    Par défaut
    Bonjour,

    Je me permets de réveiller ce topic car j'ai repéré une petite coquille dans un code, et j'ai aussi une question sur l'utilisation des Fragments :
    • Pour la coquille : dans le snippet onCreateView du Fragment, il me semble que l'id est R.layout.menu_fragment au lieu de R.layout.menu
    • Pour la question sur les Fragments relative à ce tutoriel : il est prévu que les activités soient cotes à cotes uniquement en mode portrait, mais que se passe-t-il lors d'une rotation écran : quelle activité verra-t-on sur l'écran (la principale ou la secondaire/les détails) ? De plus, je pense qu'il faut aussi prévoir la sauvegarde/restauration de données entre deux rotations pour ne pas tout perdre : est-ce exact ?


    Je vous remercie d'avance

Discussions similaires

  1. Réponses: 9
    Dernier message: 09/03/2011, 14h18
  2. recherche d'un logiciel pour créer des interface d'autorun
    Par reeda dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 13/09/2006, 20h03
  3. Réponses: 3
    Dernier message: 05/05/2006, 11h41
  4. Pluggin pour créer des interfaces graphiques en java
    Par achiou59 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 02/04/2006, 15h55
  5. Outil pour créer des interfaces graphiques
    Par Cyborg289 dans le forum Interfaces Graphiques en Java
    Réponses: 10
    Dernier message: 11/07/2005, 16h48

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