showExitAlert static method
- BuildContext context
Método para mostrar una alerta de confirmación para salir de la aplicación.
Este diálogo muestra un título, un mensaje y una imagen junto con dos botones: uno para cancelar (cerrando el diálogo) y otro para salir de la app.
Está diseñado especificamente para prevenir salidas accidentales, como cuando el usuario está en la pantalla principal y podría salir sin querer al login..
Parámetros:
context
: El contexto de la aplicación donde se mostrará el diálogo.
Implementation
static void showExitAlert(BuildContext context) {
showDialog<void>(
context: context,
// EVITA QUE SE CIERRE AL TOCAR FUERA DEL DIALOGO
barrierDismissible: false,
builder: (BuildContext context) {
return AlertDialog(
title: Text(Internationalization.internationalization
.getLocalizations(context, "dialog_exit_app_title")),
content: SizedBox(
height: 100,
child: Row(
children: [
Expanded(
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 8),
child: Text(
Internationalization.internationalization
.getLocalizations(context, "dialog_exit_app_message"),
style: const TextStyle(fontSize: 15),
// SI EL TEXTO ES MUY LARGO, SE PONE PUNTOS SUSPENSIVOS
// Y SE MUESTRA HASTA 4 LINEAS
overflow: TextOverflow.ellipsis,
maxLines: 4,
),
),
),
SizedBox(
width: 100,
height: 200,
child: Image.asset(
"assets/cubix/cubix_sad.png",
// AJUSTA LA IMAGEN COMPLETA DENTRO DEL CONTENEDOR SIN RECORTARLA
fit: BoxFit.contain,
),
),
],
),
),
actions: <Widget>[
// BOTONES PARA CANCELAR O DARLE OK
TextButton(
onPressed: () {
// CIERRA LA ALERTA
Navigator.pop(context);
},
child: Internationalization.internationalization
.createLocalizedSemantics(
context,
'cancel_label',
'cancel_hint',
'cancel_label',
const TextStyle(fontSize: 16, color: Colors.blue),
),
),
TextButton(
onPressed: () {
// SI ACEPTA CIERRA LA APP
SystemNavigator.pop();
},
child: Internationalization.internationalization
.createLocalizedSemantics(
context,
'accept_label',
'accept_hint',
'accept_label',
const TextStyle(fontSize: 16, color: Colors.blue),
),
),
],
);
},
);
}