[AsKai] Flutter captura el mensaje emergente de la aplicación que sale del usuario

Flutter captura al usuario que sale del mensaje emergente de la aplicación

Usando el componente WillPopScope, detectará el evento emergente de navegación del componente secundario y lo interceptará. Necesitamos devolver un nuevo componente (generalmente un Dialog) en su propiedad onWillPop para controlar si la página está realmente abierta.

import 'dart:async';
import 'package:flutter/material.dart';


class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}


class _HomePageState extends State<HomePage> {


    Future<bool> _onBackPressed() {
        return showDialog(
            context: context,
            builder: (context) =>
                AlertDialog(
                    title: Text('确定退出程序吗?'),
                    actions: <Widget>[
                        FlatButton(
                            child: Text('暂不'),
                            onPressed: () => Navigator.pop(context, false),
                        ),
                        FlatButton(
                            child: Text('确定'),
                            onPressed: () => Navigator.pop(context, true),
                        ),
                    ],
                ));
    }


    @override
    Widget build(BuildContext context) {
        return WillPopScope(
            onWillPop: _onBackPressed,
            child: Scaffold(
                appBar: AppBar(
                    title: Text('title'),
                ),
                body: Center(
                    child: Text('exit'),
                ),
            ),
        );
    }
}

Hay otra situación aquí. Cuando llenamos algunos formularios, si no completamos el llenado, queremos salir directamente. En este momento, también necesitamos usar la ventana emergente para advertir si estamos seguros de salir. En este caso, el widget de formulario proporciona directamente este atributo. El método de uso es el mismo que el anterior;

new Form(
       onWillPop: _onBackPressed,
       key: _formKey,
       autovalidate: true,
    child:XXXX

}

Texto original de referencia:

Portal

Supongo que te gusta

Origin blog.csdn.net/qq_42362997/article/details/111471592
Recomendado
Clasificación