用户登录

🎉 8 周年订阅优惠

要加载使用这个 NinghaoDemoLocalizations 里面定义的这些本地化的值 .. 需要再去创建一个 LocalizationsDelegates ..

再添加一个类 .. 名字是 NinghaoDemoLocalizationsDelegate .. 让它继承一下 LocalizationsDelegate .. 类型是 NinghaoDemoLocalizations ..

里面添加一个构造方法 .. NinghaoDemoLocalizationsDelegate ..

这个类里面要添加一个 load 方法 .. 它的功能就是加载一个包含了一些本地化资源的对象 .. 方法返回的是 Future .. 类型是 NinghaoDemoLocalizations .. 名字叫 load .. 里面有一个 Locale 类型的 locale 参数 ..

这个方法我们可以让它返回一个 SynchronousFuture .. 类型是 NinghaoDemoLocalizations .. 它可以返回一个同步的 Future .. 这个 SynchronousFuture 需要一个包 .. 导入 flutter 的 foundation.dart ... 用一下里面的 SynchronousFuture ..

LocalizationsDelegate 这个抽象类里面还需要一个 isSupported 方法 .. 方法接收一个 Locale 类型的参数 .. 名字可以叫 locale ..

这个方法的作用就是判断这个类的 load 方法加载的本地化资源是否支持指定的本地化语言 .. 如果支持方法可以返回 true .. 我们先直接让它返回 true

这个类里面还需要一个方法 .. 叫 shouldReload .. 它有个参数 .. 类型是 NinghaoDemoLocalizationsDelegate .. 名字是 old .. 让它返回 false ..

Localizations 小部件重建的时候会调用这个方法 .. 如果这个方法返回 true 的话 .. 它会调用这个 Delegate 里的 load 方法重新加载一下本地化资源 .. 完成以后 .. 依赖这些本地化资源的小部件都会被重建 ..

打开 main.dart ... 先在这个文件里面导入刚才我们创建的 NinghaoDemoLocalizationsDelegate.dart

然后在 MaterialApp 的 localizationsDelegates 属性里面 .. 在这个列表里再添加一个 LocalizationsDelegate .. 就是刚才我们创建的 NinghaoDemoLocalizationsDelegate ..

Localizations 小部件会使用这里提供的这些 localizationsDelegates ,去加载需要的本地化资源 ..

加载本地化资源《 Flutter 移动应用:国际化 》

统计

11440
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点