Skip to content

YahyaBennani/LAB4_dev_android

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

video demo

LAB4_dev_android.mp4

Fonctionnement de l'application

Écran principal

L'activité principale (MainActivity) affiche :

  • Un conteneur (FrameLayout) qui accueille les fragments dynamiquement
  • Deux boutons en bas de l'écran pour switcher entre les fragments

Au démarrage, Fragment 1 est affiché par défaut.


Fragment 1 — MessageFragment

Fichiers : MessageFragment.java + fragment_message.xml

Affiche un texte "Fragment One" et un bouton "Dire bonjour".

Après un clic sur le bouton, le texte devient :

Bonjour depuis Fragment 1 !

Fragment 2 — SliderFragment

Fichiers : SliderFragment.java + fragment_slider.xml

Affiche une SeekBar (curseur de 0 à 100) et un texte mis à jour en temps réel :

Valeur : 42

La valeur est sauvegardée lors d'une rotation d'écran grâce à onSaveInstanceState.


Concepts clés

FragmentManager et FragmentTransaction

getSupportFragmentManager()
    .beginTransaction()
    .replace(R.id.conteneur, new MessageFragment())
    .addToBackStack(null)
    .commit();
Méthode Rôle
beginTransaction() Démarre une transaction de fragment
replace() Remplace le fragment affiché dans le conteneur
addToBackStack(null) Permet de revenir en arrière avec le bouton Retour
commit() Exécute la transaction

Cycle de vie d'un fragment

onAttach()
    ↓
onCreate()
    ↓
onCreateView()
    ↓
onViewCreated()   ← initialisation des vues ici
    ↓
onStart()
    ↓
onResume()        ← fragment visible et interactif
    ↓
onPause()         ← fragment perd le focus
    ↓
onStop()
    ↓
onDestroyView()
    ↓
onDestroy()
    ↓
onDetach()

La manipulation des vues (findViewById, setOnClickListener...) se fait dans onViewCreated(), jamais dans onCreate().


Sauvegarde d'état (rotation d'écran)

Dans SliderFragment, la valeur de la SeekBar est sauvegardée et restaurée :

// Sauvegarde avant destruction
@Override
public void onSaveInstanceState(@NonNull Bundle out) {
    super.onSaveInstanceState(out);
    out.putInt("valeur", valeur);
}

// Restauration après recréation
if (savedInstanceState != null) {
    valeur = savedInstanceState.getInt("valeur", 0);
    seek.setProgress(valeur);
}

About

LAB 4 - Manipulation Dynamique des Fragments avec FragmentManager et FragmentTransaction

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages