Home > Back-end >  How to make only two buttons active in Flutter/Dart?
How to make only two buttons active in Flutter/Dart?

Time:07-08

In my code, there is a condition that pops up the following dialog:

enter image description here

Its code looks like this:

  //Alert Dialog about questions and answers
  void _showAlertDialog() {

    // set up the buttons
    Widget Answer1Button = TextButton(
      child: Text(_listData[_listCount][3]),
      onPressed:  () {},
    );
    Widget Answer2Button = TextButton(
      child: Text(_listData[_listCount][4]),
      onPressed:  () {},
    );

    // set up the AlertDialog
    AlertDialog alert = AlertDialog(
      // title: Text(),
      content: Text(_listData[_listCount][2]),
      actions: [
        Answer1Button,
        Answer2Button,
      ],
    );

    // show the dialog
    showDialog(
      context: context,
      builder: (BuildContext context) {
        return alert;
      },
    );
  }

I need my user to not be able to tap on the screen or press the back button. Only two buttons need to be active (Answer 1.1 and Answer 1.2 in this example).

How to do it? Thanks in advance.

CodePudding user response:

You can pass a parameter named 'barrierDismissible' in the showDialog, set it to false.

showDialog(
  barrierDismissible: false,
  builder: ...
)

CodePudding user response:

There is one parameter called barrierDismissible which you can use to dismiss any tap of background of dialog,

showDialog(
  barrierDismissible: false,
)

And to get the callback when the user taps the back button use WillPopScope widget.

WillPopScope(
      onWillPop: () async {
        return shouldPop;
      },
  • Related