Как настроить AlertDialog, чтобы не закрывать щелчки снаружи во флаттере - PullRequest
0 голосов
/ 01 июня 2018

Я построил AlertDialog для отображения загрузки, когда я аутентифицирую пользователя, а когда он заканчивается, я высовываю его.

Widget loadingDialog = new AlertDialog(
content: new Row(
  children: <Widget>[
    new CircularProgressIndicator(),
    Padding(
      padding: const EdgeInsets.only(left: 8.0),
      child: new Text("Loading..."),
    ),
  ],
),);

Но, если пользователь нажимает за пределами диалога, он закрывается.Поэтому, когда аутентификация завершается, она все равно что-то высовывает (я думаю, скаффол), ломая приложение.Как я могу сделать диалог не закрываемым?

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

// Определяемая пользователем функция void _showloding () {

// flutter defined function
showDialog(
  barrierDismissible: false, // JUST MENTION THIS LINE
  context: context,
  builder: (BuildContext context) {
    // return object of type Dialog
    return AlertDialog(
      content: Padding(
        padding: const EdgeInsets.all(20.0),
        child: Container(height: 100,width: 100,child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Center(child: SizedBox(height: 50,width: 50,child: CircularProgressIndicator())),
            Padding(
              padding: const EdgeInsets.only(top: 20),
              child: Center(child: Text("Processing")),
            )
          ],
        )),
      )
    );
  },
);

}

0 голосов
/ 01 июня 2018

Внутри showDialog есть свойство, называемое barrierDismissible.Установка этого значения в false сделает ваш AlertDialog закрытым, нажав снаружи.

showDialog(
   ...
   barrierDismissible: false,
   ...
...