#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
происходит?