Lección 39: Implementación de la Pantalla Inicio
Bien, llegamos al punto donde vamos a empezar a visualizar las pantallas que necesitamos en nuestra aplicación móvil.
Normalmente una pantalla de inicio cuenta con tres elementos frecuentes como:
- El Logo
- El nombre
- Y finalmente un boton para acceder a las funciones del aplicativo. Podemos agregarle más elementos aplicando diseño.
Si bien tenemos un archivo principal llamado main.dart este solo inicializa la app, para mostrar una pantalla gráfica creamos un archivo en el directorio pantalla/PantallaInicio.dart accedemos y digitamos el siguiente código:
import 'package:arequipalocal/pantalla/PantallaCategoria.dart';
import 'package:arequipalocal/pantalla/PantallaLogin.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class PantallaInicio extends StatefulWidget {
@override
_PantallaInicioState createState() => _PantallaInicioState();
}
class _PantallaInicioState extends State<PantallaInicio> {
bool _islogin =false;
void _verificarLogin() async{
SharedPreferences login = await SharedPreferences.getInstance();
var token = login.getString("token");
if(token!=null){
setState(() {
_islogin = true;
});
}
}
@override
void initState() {
// TODO: implement initState
_verificarLogin();
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.orangeAccent,
body: Container(
width: MediaQuery.of(context).size.width,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text("AREQUIPALOCAL",style: TextStyle(color: Colors.white,fontSize: 40),textAlign: TextAlign.center,),
SizedBox(
height: 100,
),
Text("Delivery al toque",style: TextStyle(color: Colors.white,fontSize: 25),),
SizedBox(
height: 100,
),
RaisedButton(
elevation: 0,
shape: CircleBorder(),
padding: EdgeInsets.all(15),
onPressed: () async {
_islogin
?
Navigator.of(context).push(MaterialPageRoute(
builder: (BuildContext) =>PantallaCategoria()
))
:
Navigator.of(context).push(MaterialPageRoute(
builder: (BuildContext) =>PantallaLogin()
));
},
child: Icon(
Icons.chevron_right,
color: Colors.red,
),
)
],
),
),
);
}
}
Donde evaluamos si existe un usuariuo autenticado o no, de acuerdo a esta evaluación el botón redirige al usuario a realizar un pedido o a loguearse.
Para ello tenemos una variable _islogin, además de una función que evalua una variable de almacenamiento local con SharedPreferences. Dicha evaluación de debe realizar al cargar la pantalla en el método initState.
1686 visitas