Quasi ogni app ha una schermata di FAQ, Termini di servizio o Impostazioni avanzate in cui il contenuto va mostrato solo su richiesta dell'utente. Il pattern classico è la fisarmonica (accordion): un titolo cliccabile che, al tocco, rivela il contenuto sottostante con una piccola animazione.
Flutter offre due widget pronti all'uso per questo scopo, entrambi inclusi nella libreria Material:
ExpansionTile: la soluzione più semplice, perfetta per elenchi di voci indipendenti;ExpansionPanelList(e la sua variante.radio): più configurabile, permette di controllare lo stato di apertura dall'esterno e di tenere aperto un solo pannello alla volta.
In questo tutorial costruiremo passo dopo passo una schermata FAQ completa: partiremo da un modello dati minimo, creeremo la lista espandibile, la personalizzeremo (icone, colori, bordi arrotondati, padding) e infine implementeremo il comportamento "una sola risposta aperta alla volta". Chiuderemo con qualche accorgimento su prestazioni e accessibilità.
Non serve nessun pacchetto esterno: tutto quello che useremo è già dentro Flutter.