AlertDialog не трепещет одеждой

#flutter #alert

Вопрос:

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

как вы можете видеть, он остается «размытым» экраном ..

Результат

в отладке я вижу, что он выполняет вызов:

     settingsBloc.state.hasPinSet().then((value) {
  if (!value) {
    Future.delayed(Duration(milliseconds: 10), () async {
      var pin = await Navigator.of(context).push(
        MaterialPageRoute(builder: (_) => RequestPinPage()),
      );
 

Мне нужно, и после этого это не поднимает тему L’Alert

       @override
  void initState() {
    super.initState();
    settingsBloc.state.hasPinSet().then((value) {
      if (!value) {
        Future.delayed(Duration(milliseconds: 10), () async {
          var pin = await Navigator.of(context).push(
            MaterialPageRoute(builder: (_) => RequestPinPage()),
          );
          await showAlertDialog(context);

          assert(pin != null, "Il pin non può essere nullo: è obbligatorio");

          settingsBloc.state.pin = pin;
          settingsBloc.add(s_events.Patch(requestAuth: true));

          Fluttertoast.showToast(msg: "Pin aggiornato correttamente");

          if (!await LocalAuthentication().canCheckBiometrics ||
              (await LocalAuthentication().getAvailableBiometrics()).isEmpty) {
            logger.i("Cannot check biometrics");
            return;
          }
          // TODO AGGIUNGERE TOAST
          /*
          showDialog<bool?>(
            context: context,
            barrierDismissible: false,
            builder: (_) => AdaptiveAlertDialog(
              title: Text(
                "Abilitare l'accesso con ${Platform.isAndroid ? "l'impronta" : "il Face ID"}?",
              ),
              actions: [
                TextButton(
                    onPressed: () => Navigator.of(context).pop(false),
                    child: Text("BTN_NO".tr)),
                TextButton(
                  onPressed: () => Navigator.of(context).pop(true),
                  child: Text("BTN_YES".tr),
                ),
              ],
            ),
          ).then((value) =>
              settingsBloc.add(s_events.ToggleBiometric(value ?? false)));
              */
        });
      }
    });

    _tabs = [
      BlocBuilder<ContentBloc, ContentState>(
        bloc: contentBloc,
        builder: (ctx, state) => HomeTab(scaffoldKey: _scaffoldkey),
      ),
      TransactionsTab(scaffoldKey: _scaffoldkey),
      WalletPage(),
      ProfileTab(),
    ];

    _tabController = TabController(length: 4, vsync: this);

    _selectedTab.listen((value) => _tabController.animateTo(value));
    contentBloc.add(GetMerchants());
    contentBloc.add(GetAllUserData());
  }

  showAlertDialog(BuildContext context) {
    AlertDialog alert = AlertDialog(
      title: FittedBox(
        child: AutoSizeText(
          "Sei una persona giuridica?",
          textAlign: TextAlign.center,
          style: TextStyle(color: appColors.green),
        ),
      ),
      content: FittedBox(
        child: AutoSizeText(
          "Completa la registrazione per acquistare i nostri buonifiscalmente detraibili e, se sei un esercente, riceverli!",
          textAlign: TextAlign.center,
          style: TextStyle(color: appColors.green),
          maxLines: 2,
        ),
      ),
      actions: [
        TextButton(
            onPressed: () => Navigator.of(context).pop(false),
            child: Text("Ok!")),
        TextButton(
          onPressed: () => Navigator.of(context).pop(true),
          child: Text("Magari più tardi"),
        ),
        TextButton(
            onPressed: () => Navigator.of(context).pop(false),
            child: Text("Sono un privato, non mi interessa")),
      ],
    );

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

Мне нужно оповещение при запуске приложения, чтобы в зависимости от того, что пользователь хочет сделать, продолжить просмотр

Комментарии:

1. что showAlertDialog происходит?