Curso App restaurant con pedidos en Flutter
Creación de la Pantalla de Inicio en la App de Restaurante
En esta lección, aprenderás a implementar la pantalla de inicio de la aplicación del restaurante. La pantalla incluye un fondo vibrante, el logotipo del restaurante en el centro y un botón que redirige al menú principal de la app.
En esta lección, aprenderás a implementar la Pantalla de Inicio de tu aplicación de restaurante en Flutter. Esta pantalla servirá como una introducción visual a la app, mostrando un logotipo y un botón que llevará al usuario al menú principal.
El widget Scaffold
es el contenedor base de la pantalla. Define la estructura general y el color de fondo de la interfaz, en este caso, con el color amber.
Utilizamos un Stack
para posicionar varios elementos sobrepuestos, incluyendo el logotipo, el texto decorativo y el botón de navegación.
Positioned
para ubicar un contenedor con texto en la parte inferior derecha de la pantalla.RotatedBox
, estilizado con cursivas, espaciado de letras, y color blanco.Image.asset
, que carga una imagen desde los recursos locales.TextButton
en la parte inferior de la pantalla. Está envuelto en un Container
con estilo (color naranja y bordes redondeados).Navigator.pushReplacement
.dart
import 'package:apprestaurant/screens/pantallaMenu.dart';
import 'package:flutter/material.dart';
class Pantallainicio extends StatefulWidget {
const Pantallainicio({super.key});
@override
State<Pantallainicio> createState() => _PantallainicioState();
}
class _PantallainicioState extends State<Pantallainicio> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.amber,
body: Container(
child: Stack(
children: [
Positioned(
child: Align(
alignment: FractionalOffset.bottomRight,
child: Container(
padding: const EdgeInsets.only(
right: 15, left: 15, top: 30, bottom: 30),
decoration: const BoxDecoration(
color: Colors.orange,
borderRadius:
BorderRadius.only(topLeft: Radius.circular(50))),
child: const RotatedBox(
quarterTurns: 3,
child: Padding(
padding: EdgeInsets.all(10),
child: Text(
"La mejor comida típika",
style: TextStyle(
fontSize: 25.0,
color: Colors.white,
letterSpacing: 5,
fontStyle: FontStyle.italic),
),
),
)),
),
),
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Center(
child: Image.asset(
"assets/img/ic_logo.png",
width: MediaQuery.of(context).size.width / 2,
height: 200,
),
),
const SizedBox(height: 100),
TextButton(
onPressed: () {
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (_) => PantallaMenu()));
},
child: Container(
decoration: BoxDecoration(
color: Colors.orange,
borderRadius: BorderRadius.circular(35)),
child: const Padding(
padding: EdgeInsets.all(20),
child: Icon(
Icons.chevron_right,
color: Colors.white,
),
),
))
],
)
],
),
),
);
}
}
Scaffold:
Scaffold
es la estructura principal de la pantalla, con un fondo color amber.Stack:
Stack
para superponer varios elementos:
Texto Estilizado:
RotatedBox
. Se aplica un estilo con letra cursiva, color blanco y un espaciado de letras de 5px, dándole un toque llamativo y visualmente atractivo.Logotipo:
Image.asset
para cargar la imagen local. Este logotipo tiene una altura fija de 200px y un ancho que ocupa la mitad de la pantalla.Botón de Navegación:
TextButton
estilizado mediante un Container
con color naranja y bordes redondeados. Al presionar el botón, se ejecuta Navigator.pushReplacement
, que redirige al usuario a la Pantalla Menú.2104 visitas
« Capítulo 6 – Implementación de Provider
Capítulo 8 – Implementación de Tabs dinámicos »
Descarga el código fuente del proyecto adquiriendo el curso completo
Comprar© Copyright Codea::App Cursos de Programación Online | LATAM | 2020 - 2024