Pubblicità

Stati dei widget flutter

  1. Constructor Function:
    • Il ciclo di vita del widget inizia con la chiamata alla funzione costruttore della classe StatefulWidget. Questo avviene quando il widget viene creato per la prima volta.
  2. createState():
    • Dopo il costruttore, viene chiamato il metodo createState(), che è responsabile della creazione di un’istanza della classe che estende State. Questa classe contiene lo stato effettivo del widget e il suo ciclo di vita.
  3. initState():
    • Una volta creato lo stato, viene chiamato initState(). Questo metodo è chiamato una sola volta quando il widget è inserito nella tree structure, e viene utilizzato per inizializzare i dati o per configurare listener e altre operazioni preliminari.
  4. didChangeDependencies():
    • Questo metodo viene chiamato immediatamente dopo initState() e ogni volta che le dipendenze del widget cambiano. È utile per eseguire azioni in risposta al cambiamento delle dipendenze.
  5. DIRTY:
    • Un widget diventa “dirty” (sporco) quando qualcosa che ne influenza il rendering cambia. Ad esempio, quando cambia uno stato osservato o quando si chiama setState().
  6. build():
    • Il metodo build() viene chiamato ogni volta che il widget deve essere ricostruito. È qui che viene costruita la rappresentazione visiva del widget basata sullo stato attuale.
  7. setState():
    • Questo metodo viene chiamato per notificare il framework che lo stato interno del widget è cambiato e che il widget deve essere ricostruito. Quando si chiama setState(), il widget viene marcato come “dirty” e build() verrà chiamato nuovamente.
  8. didUpdateWidget():
    • Viene chiamato quando il widget padre cambia e si passa un nuovo widget al metodo State.build(). Questo è il punto in cui si può confrontare il nuovo widget con il vecchio e aggiornare lo stato interno se necessario.
  9. CLEAN:
    • Dopo che il widget è stato ricostruito, si trova nello stato “clean” (pulito), pronto per essere visualizzato fino a quando non diventa di nuovo “dirty”.
  10. deactivate():
    • Questo metodo viene chiamato quando il widget è rimosso temporaneamente dalla tree structure, ma potrebbe essere reinserito successivamente. È un’opportunità per annullare qualsiasi risorsa che potrebbe essere riattivata più tardi.
  11. dispose():
    • Viene chiamato quando il widget è definitivamente rimosso dalla tree structure. Qui si dovrebbero rilasciare tutte le risorse (ad esempio controller o listener) per evitare memory leaks.