Android - Frammenti

UN Fragment è una parte di un'attività che consente una progettazione di attività più modulare. Non sarebbe sbagliato se diciamo che un frammento è una specie di sub-activity.

Di seguito sono riportati punti importanti sul frammento:

  • Un frammento ha il proprio layout e il proprio comportamento con i propri callback del ciclo di vita.

  • È possibile aggiungere o rimuovere frammenti in un'attività mentre l'attività è in esecuzione.

  • È possibile combinare più frammenti in un'unica attività per creare un'interfaccia utente con più riquadri.

  • Un frammento può essere utilizzato in più attività.

  • Il ciclo di vita del frammento è strettamente correlato al ciclo di vita della sua attività ospite, il che significa che quando l'attività viene sospesa, anche tutti i frammenti disponibili nell'attività verranno interrotti.

  • Un frammento può implementare un comportamento che non ha componenti dell'interfaccia utente.

  • I frammenti sono stati aggiunti all'API Android nella versione Honeycomb di Android quale versione API 11.

Crei frammenti estendendoli Fragment class e Puoi inserire un frammento nel layout dell'attività dichiarando il frammento nel file del layout dell'attività, come file <fragment> elemento.

Prima dell'introduzione del frammento, avevamo una limitazione perché possiamo mostrare solo una singola attività sullo schermo in un dato momento. Quindi non siamo stati in grado di dividere lo schermo del dispositivo e controllare le diverse parti separatamente. Ma con l'introduzione del frammento abbiamo ottenuto una maggiore flessibilità e rimosso il limite di avere una singola attività alla volta sullo schermo. Ora possiamo avere una singola attività, ma ogni attività può comprendere più frammenti che avranno il proprio layout, eventi e ciclo di vita completo.

Di seguito è riportato un tipico esempio di come due moduli dell'interfaccia utente definiti da frammenti possono essere combinati in un'unica attività per un design tablet, ma separati per un design portatile.

L'applicazione può incorporare due frammenti nell'attività A, quando viene eseguita su un dispositivo delle dimensioni di un tablet. Tuttavia, su uno schermo delle dimensioni di un portatile, non c'è abbastanza spazio per entrambi i frammenti, quindi l'attività A include solo il frammento per l'elenco degli articoli e quando l'utente seleziona un articolo, avvia l'attività B, che include il secondo frammento da leggere l'articolo.

Ciclo di vita del frammento

I frammenti di Android hanno un proprio ciclo di vita molto simile a un'attività di Android. Questa sezione riassume le diverse fasi del suo ciclo di vita.

Ciclo di vita dei frammenti

Ecco l'elenco dei metodi che puoi sovrascrivere nella tua classe di frammenti:

  • onAttach()L'istanza del frammento è associata a un'istanza dell'attività. Il frammento e l'attività non sono completamente inizializzati. Tipicamente in questo metodo si ottiene un riferimento all'attività che utilizza il frammento per ulteriori operazioni di inizializzazione.

  • onCreate()Il sistema chiama questo metodo durante la creazione del frammento. È necessario inizializzare i componenti essenziali del frammento che si desidera conservare quando il frammento viene sospeso o interrotto, quindi ripreso.

  • onCreateView()Il sistema chiama questo callback quando è il momento che il frammento disegna la sua interfaccia utente per la prima volta. Per disegnare un'interfaccia utente per il tuo frammento, devi restituire un fileViewcomponente da questo metodo che è la radice del layout del frammento. Puoi restituire null se il frammento non fornisce un'interfaccia utente.

  • onActivityCreated()L'onActivityCreated () viene chiamato dopo il metodo onCreateView () quando viene creata l'attività host. Sono state create le istanze di attività e frammento così come la gerarchia di visualizzazione dell'attività. A questo punto, è possibile accedere alla visualizzazione con il metodo findViewById (). esempio. In questo metodo puoi istanziare oggetti che richiedono un oggetto Context

  • onStart()Il metodo onStart () viene chiamato una volta che il frammento diventa visibile.

  • onResume()Il frammento diventa attivo.

  • onPause()Il sistema chiama questo metodo come prima indicazione che l'utente sta lasciando il frammento. Di solito è qui che dovresti eseguire il commit delle modifiche che dovrebbero essere mantenute oltre la sessione utente corrente.

  • onStop()Il frammento verrà fermato chiamando onStop ()

  • onDestroyView()La vista frammento verrà distrutta dopo aver chiamato questo metodo

  • onDestroy()onDestroy () chiamato per eseguire la pulizia finale dello stato del frammento ma non è garantito che venga chiamato dalla piattaforma Android.

Come si usano i frammenti?

Ciò comporta una serie di semplici passaggi per creare frammenti.

  • Prima di tutto decidi quanti frammenti vuoi usare in un'attività. Ad esempio, vogliamo utilizzare due frammenti per gestire le modalità orizzontale e verticale del dispositivo.

  • Successivamente, in base al numero di frammenti, crea classi che estenderanno la classe Fragment . La classe Fragment ha le funzioni di callback sopra menzionate. È possibile sovrascrivere qualsiasi funzione in base alle proprie esigenze.

  • In corrispondenza di ogni frammento, sarà necessario creare file di layout in file XML. Questi file avranno il layout per i frammenti definiti.

  • Infine, modifica il file di attività per definire la logica effettiva di sostituzione dei frammenti in base alle tue esigenze.

Tipi di frammenti

Fondamentalmente i frammenti sono divisi in tre fasi come mostrato di seguito.