Flutter使用CupertinoAlertDialog 报 'alertDialogLabel' was called on null.

我在主界面监听返回键, 然后希望弹出 CupertinoAlertDialog 让用户确认是否退出, 一开始都好好的, 在我经过打包成apk之后, 这个 CupertinoAlertDialog 就开始一直报错


一顿操作, 还是无果...

只能求助谷歌, 果然翻到一个答案:


也就是在 main.dart 的 MaterialApp 加入这个属性:

localizationsDelegates: [
  GlobalMaterialLocalizations.delegate,
  GlobalWidgetsLocalizations.delegate,
  YabandLocalizationsDelegate.delegate,
  const FallbackCupertinoLocalisationsDelegate(), //加入这个, 上面三个是我用来国际化的
],复制代码

然后创建对应的 class :

class FallbackCupertinoLocalisationsDelegate
    extends LocalizationsDelegate<CupertinoLocalizations> {
  const FallbackCupertinoLocalisationsDelegate();

  @override
  bool isSupported(Locale locale) => true;

  @override
  Future<CupertinoLocalizations> load(Locale locale) =>
      DefaultCupertinoLocalizations.load(locale);

  @override
  bool shouldReload(FallbackCupertinoLocalisationsDelegate old) => false;
}复制代码

这样就 ok 咯~~~

再次运行, 完美弹出 CupertinoAlertDialog ~


转载于:https://juejin.im/post/5c417d626fb9a049ec6b5d44

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值