image/svg+xml $ $ ing$ ing$ ces$ ces$ Res Res ea ea Res->ea ou ou Res->ou r r ea->r ch ch ea->ch r->ces$ r->ch ch->$ ch->ing$ T T T->ea ou->r

Fragments

Cycle de vie d'un fragment

FragmentManager

Création de transaction :

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

Exemple :

getSupportFragmentManager().beginTransaction()
                           .add(emailBody, "emailBody")
                           .addToBackStack() // add to the back stack
                           .commit();

Communication entre le fragment et l'activité hôté

Adaptation au matériel avec les fragments

Fragment persistant

Dialogues

Implantation d'un dialogue :

  1. Création d'une nouvelle classe interne héritant de DialogFragment
  2. Redéfinition de la méthode public Dialog onCreateDialog(Bundle savedInstanceState) retournant un dialogue
    • Le dialogue est créé :
      • en utilisant AlertDialog.Builder pour un dialogue d'alerte avec un message et des propositions de choix
        • l'utilisation de nombreux setters est possible pour indiquer le message, les boutons, ajouter des listeners, rendre le dialogue annulable...
      • en instantiant un DatePickerDialog pour récupérer une date, un TimePickerDialog pour récupérer une heure
      • en créant un ProgressDialog affichant une barre de progression invitant l'utilisateur à patienter
  3. On instantie le DialogFragment créé et on l'affiche avec fragment.show(getFragmentManager(), "dialog")
  4. Le dialogue peut également être affiché comme un fragment si on estime que l'écran est suffisamment grand pour l'accueillir

Toast et Snackbar

Un petit toast