🌗 Cambiar o tema cun interruptor
No Tema 3.2 aprendemos a configurar os temas claro e escuro dunha aplicación, pero escollemos o modo directamente no código.

💡 Neste apartado imos aprender a cambiar entre o tema claro e o escuro mentres a aplicación está en funcionamento, sen necesidade de modificar o código.
Para iso:
- Engadiremos un interruptor (
SwitchListTile) que permitirá ao usuario escoller o modo que prefira. - Gardaremos esa elección nunha variable booleana (
bool) doState. - Utilizaremos
setStatepara actualizar a interface cada vez que cambie o interruptor.
Deste xeito, veremos como combinar a xestión do estado cos temas de Flutter para que a aparencia de toda a aplicación cambie automaticamente segundo a elección do usuario.
Ademais, utilizaremos a propiedade colorSchemeSeed de ThemeData para xerar automaticamente un esquema de cores a partir dunha cor inicial. É unha forma máis sinxela de conseguir un resultado similar ao que obtivemos con ColorScheme.fromSeed no Tema 3.2.
🧪 Exemplo completo
Neste programa, ao activar ou desactivar o interruptor, cambia automaticamente o tema de toda a aplicación, incluíndo o fondo e a tarxeta, e non só a cor do propio interruptor.
🔗 DartPad:
O operador condicional ?: permite escoller entre dous valores segundo se cumpra ou non unha condición. Neste exemplo, se _escuro é true, utilizamos ThemeMode.dark; se é false, utilizamos ThemeMode.light.
Tamén existe ThemeMode.system, que permite adaptar automaticamente o tema á configuración do dispositivo, como vimos no Tema 3.2.
A elección pérdese ao reiniciar a aplicación. Para gardala entre execucións, consulta as preferencias do Tema 3.6.

📚 Consulta: