Saltar al contenido

Flutter cómo ejecutar al hacer clic en el botón Atrás

Presta atención porque en este tutorial vas a hallar la respuesta que buscas.

Solución:

Puede escuchar el mensaje emergente con WillPopScope (crea un widget que registra una devolución de llamada para vetar los intentos del usuario de descartar el mensaje adjunto). [ModalRoute]. -> de la documentación):

@override
Widget build(BuildContext context) 
 return WillPopScope(
  onWillPop: () 
    print('Backbutton pressed (device or appbar button), do whatever you want.');

    //trigger leaving and use own data
    Navigator.pop(context, false);

    //we need to return a future
    return Future.value(false);
  ,
  child: Scaffold(
  ...
  ),
 );

¡Espero haber respondido bien a tu pregunta y eso ayude :)!

Puede anular la flecha hacia atrás predeterminada en el AppBary luego especifique el valor que le gustaría devolver para activar el cambio de estado cuando Navigator.pop se llama:

Pseudocódigo

por lo que necesita tener algo como esto en su onPressed devolución de llamada de su botón de navegación

onPressed: ()asyncnav==null)
              //change the state
            
          ,

y en tu nueva ruta deberías tener algo como esto

new AppBar(
        leading: new IconButton(
          icon: new Icon(Icons.arrow_back),
          onPressed: ()Navigator.pop(context,true)
        ),

Estoy comprobando ambos valores. null o true porque el null El valor se devuelve cuando el usuario presiona el botón Atrás en la pantalla de Android (el que está en la parte inferior de la pantalla). yo tambien creo el null también se devolverá con el BackButton predeterminado en Flutter, por lo que en realidad no necesita anular el leading propiedad, pero no lo he comprobado yo mismo, por lo que puede valer la pena comprobarlo.

Sección de Reseñas y Valoraciones

Eres capaz de sustentar nuestra ocupación poniendo un comentario y dejando una puntuación te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *