Aplicacions amb Flutter, Dart i Flame

Tutorial Flutter Flame Projectes   Recursos CITCEA
Exemples Dart Dades pràctiques     Inici

Constructor de futurs

Els constructors de futurs són uns ginys especials, pensats per tractar amb futurs. La seva principal aplicació és presentar els resultats d'una consulta web, permetent gestionar els problemes que puguin sorgir. Té dos paràmetres, el primer és el corresponent a la crida que generarà el futur corresponent i el segon és el constructor, que té el context i una instantània (snapshot) de l'estat del futur. En aquesta instantània disposem de diverses informacions:

Element Utilitat
snapshot.connectionState Estat de la connexió
snapshot.hasError True si hi ha un error
snapshot.error Error que hi ha hagut
snapshot.hasData True si han arribat dades
snapshot.data Dades rebudes

Els estats de connexió poden ser:

Estat Significat
ConnectionState.none No hi ha connexió, no arribaran dades
ConnectionState.waiting S'està a l'espera de resposta
ConnectionState.active Connexió activa, dades transmetent-se
ConnectionState.done Connexió finalitzada

En el següent tros de programa, agafat d'aquesta pàgina d'aquest exemple, podem veure una mostra de com gestionar-ho.

...
          Padding(
            padding: const EdgeInsets.all(8.0),
            child: TextButton(
              onPressed: () {
                setState(() {
                  _descrip = cridaLlistaDones.demanarLlistaDones();
                });
              },
              child: Text("Dones catalanes"),
            ),
          ),
          FutureBuilder(future: _descrip, builder: (context, snapshot){
            if(snapshot.connectionState == ConnectionState.waiting){
              return CircularProgressIndicator();
            } else if(snapshot.hasError){
              return Text("Error: ${snapshot.error}");
            } else if(snapshot.hasData){
              return Text("${snapshot.data?.descrip}");
            } else {
              return Text("No s'han trobat resultats");
            }
          })
...

 

 

 

 

 

 

 

 

 

 

Llicència de Creative Commons
Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.