Home > Software engineering >  showAlertDialog don t close when it is pressed "no"
showAlertDialog don t close when it is pressed "no"

Time:10-02

hello i have this showAlertDialog and need close when "no" it is pressed. With this code, when i press "no" my page in background is closed and showAlertDialog stay open. I just want to close the showAlertDialog and leave the page as it was

showAlertDialog(BuildContext context) {
  Widget noButton = TextButton(
    child: const Text("no"),
    onPressed: () {
      Navigator.pop(context);
    },
  );
  Widget yesButton = TextButton(
    child: const Text("yes"),
    onPressed: () {},
  );

  AlertDialog alert = AlertDialog(
    title: const Text("Aviso"),
    content: const Text("Dejesa finalizar a sua compra?"),
    actions: [
      noButton,
      yesButton,
    ],
  );

  showDialog(
    context: context,
    builder: (BuildContext context) {
      return alert;
    },
  );
}

CodePudding user response:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: "Test",
      home: TestPage(),
    );
  }
}

class TestPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Test")),
      body: Center(
        child: InkWell(
          onTap: () {
            showAlertDialog(context);
          },
          child: Text("PressMe"),
        ),
      ),
    );
  }

  showAlertDialog(BuildContext context) {
    Widget noButton = TextButton(
      child: const Text("no"),
      onPressed: () {
        Navigator.pop(context);
      },
    );
    Widget yesButton = TextButton(
      child: const Text("yes"),
      onPressed: () {},
    );

    AlertDialog alert = AlertDialog(
      title: const Text("Aviso"),
      content: const Text("Dejesa finalizar a sua compra?"),
      actions: [
        noButton,
        yesButton,
      ],
    );

    showDialog(
      context: context,
      builder: (BuildContext context) {
        return alert;
      },
    );
  }
}
  • Related