前言
主题切换和多语言切换作为app的扩展功能也是很重要的,在目前市面上绝大多数的app中也都包含了这些功能,因此我觉得非常有必要掌握其实现的方式以及原理,网上也有很多相关的教程和实例,但是都讲的不是很完整或者不全面,因此本篇文章旨在通过通俗的表述来详细讲解flutter中如何实现主题切换和多语言切换的功能,相信看完你一定会有所收获。
开始实现
首先我们需要知道在app中实现类似于主题切换和多语言切换这样的功能,两者中任意一项配置的切换更改,影响的不单单是app中的某一个页面,而是app中所有需要改变颜色和语言的页面,因此是对整个app生效的,即就是当发生切换的时候我们需要刷新整个app,这样所有引用了颜色和语言的页面就会刷新,而在flutter中说到页面刷新,我们就必须提到一个重要的知识点:状态管理,个人认为状态管理是进行flutter项目开发必须掌握的一项技能,目前关于状态管理的解决方案也有很多,比如:官方的Provider,Bloc,GetX都是目前比较受欢迎用的人也比较多的三种,自己务必要选择其中的一个或者多个熟练掌握,因为真的很重要。
同样的切换之后,需要持久化保存用户的选择,下次再次打开app,依然使用上次的设置,在flutter中实现简单数据配置的持久化存储,可以通过插件shared_preferences来实现,对应原生iOS和macOS上的NSUserDefaults,和Android上的SharedPreferences实现。
1,插件依赖
dependencies