Flutter存储技术学习SharedPreferencesAndroidiOS可运行
本头条核心宗旨
欢迎来到「技术刚刚好」作者,「技术刚刚好」是个人维护,每天至少更新一篇Flutter技术文章,实时为大家播报Flutter最新消息。如果你刚好也在关注Flutter这门技术,那就跟我一起学习进步吧,你的赞,收藏,转发是对我个人最大的支持,维护不易,欢迎关注。技术刚刚好经历
近几年,移动端跨平台开发技术层出不穷,从Facebook家的ReactNative,到阿里家WEEX,前端技术在移动端跨平台开发中大展身手,技术刚刚好作为一名Android开发,经历了从Reactjs到Vuejs的不断学习。而在2018年,我们的主角变成了Flutter,这是Goolge开源的一个移动端跨平台解决方案,可以快速开发精美的移动App。希望跟大家一起学习,一起进步!本文核心要点
本文会讲解在Flutter当中存储简单的数据,方便在Android,iOS 手机上读写简单的数据,
在简单示例中,假设您只想在电话上存储简单数据,以后再启动该应用程序时就可以引用该数据,然后共享首选项将帮助您在电话上存储数据。
iOS和macOS上的NSUserDefaults中的共享首选项,Android 上的SharedPreferences。
我相信做安卓 iOS 开发的应该知道这两个API
添加依赖:
首先,您需要将包名称添加 shared_preferences到Pubspec.yaml中
在dependencies: 您的 部分中 pubspec.yaml,将以下几行添加为" 共享的偏好设置":
现在在您的终端中运行 Flutter程序包 ,我们将安装该 shared_preferences程序包。class MyApp extends StatefulWidget { @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State { @override Widget build(BuildContext context) { return MaterialApp( home: !isFirstScreen ? IntroScreen() : HomeScreen(), ); } }
在上述代码中,我们创建MyApp StatefulWidget,在home属性中,我们具有isFirsScreen。
要存储布尔值,我们需要创建变量isFirstScreen,如下所示:bool isFirstScreen = false;class IntroScreen extends StatefulWidget { @override _IntroScreenState createState() => _IntroScreenState(); } class _IntroScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text("Intro Screen"), RaisedButton( onPressed: () {}, child: Text("GO to HomeScreen"), ) ], ), )); } }
这个时候当我们进入项目就实现一次介绍。
当第二次进入就不显示了。void gotoHomeScreen(context) async { ///Shared Preferences wiill stored types String , int , bool, double SharedPreferences pref = await SharedPreferences.getInstance(); await pref.setBool("seen", true); Navigator.of(context).pushReplacement( MaterialPageRoute( builder: (context) => HomeScreen(), ), ); }class HomeScreen extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( body: Center( child: Text( "Home Screen", style: TextStyle( fontSize: 30, ), ), ), ); } }然后,我们需要为此在MyApp中获取该密钥,我们需要在MyApp窗口小部件中创建checkFirstScreen。 Future checkFirstScreen() async { SharedPreferences pref = await SharedPreferences.getInstance(); //if First statement is Null Or NO Value then it will give us Second Value bool seen = (pref.getBool("seen") ?? false); if (seen) { setState(() { isFirstScreen = true; }); } else { setState(() { isFirstScreen = false; }); } } Future checkFirstScreen() async { SharedPreferences pref = await SharedPreferences.getInstance(); //if First statement is Null Or NO Value then it will give us Second Value bool seen = (pref.getBool("seen") ?? false); if (seen) { setState(() { isFirstScreen = true; }); } else { setState(() { isFirstScreen = false; }); } }
这样就行了。
看国产轴是如何卷死Cherry轴的达尔优天空轴V2对比CherryMX不知从什么时候开始客制化风潮悄然在键圈中兴起,各国产品牌都先后推出或多或少的金属机身铝坨坨的客制化键盘,可以肯定的是在客制化理念的普及上各种客制化轴体功不可没。TTC金粉,佳达隆G
世界互联网大会乌镇峰会发布通知征集携手构建网络空间命运共同体实践案例2015年,中国国家主席习近平在第二届世界互联网大会首次提出构建网络空间命运共同体理念。构建网络空间命运共同体,是人类命运共同体理念在网络空间的具体体现和重要实践,为推动全球互联网
linux之()(())(())的作用特殊符号stringpattern用于判断string和右边的正则表达式pattern是否匹配(string是否包含pattern正则表达式)。1与与都是用来引用变量的。指定变量边
湘当有才海归博士研究给牙齿穿上铠甲要做中国自己的口腔材料!面对口腔材料80左右被国外垄断这一现实,2018年,29岁的陈晓婧带着自主研发的使命回国,开启乘风破浪的科研之路。16日,记者致电中南大学湘雅口腔医院教授陈
618手机选购指南(1000一2000)芯片排行第1款redmik40s红米的手机,在性价比方面真把门捍死,很多懂手机的人或学生党都会选择它。讲实话,性价比高的手机,大家都不会拒绝。这款手机继承了k40的血统,加量还减仅
从业务全球化到品牌全球化中国品牌走出去探索新价值先进的液晶模组生产线高频运转的生产设备智能化的运营操控今年4月,海信位于印度尼西亚首都雅加达的彩电基地正式投产,这也是中国企业从业务全球化到品牌全球化的一个缩影。近年来,中国品牌出
苹果计划提供一项全新的服务整合健康应用据彭博社的马克古尔曼报道,苹果计划今年对AppleFitness和ApplePay进行几项改进,并已探索提供一项全新的服务,整合了健康应用。在最新一期的Poweron时事通讯中,古
高性能框架都会复用对象,它做到了开箱即用之前的文章httprouter路由框架为什么高性能提到过一点高性能的原因就是它减少了内存分配。因为分配内存是在堆上分配的,调用mallocgc函数,是有性能消耗的。而httprou
手机怎样设置4G功能?应邀回答本行业问题。手机设置4G功能,必须手机支持,而且运营商的网络也需要支持,这样的话你的手机才能接入4G网络。4G网络其实是指支持IMTAdvanced标准的网络,其实这才是真
shell日常使用的小技巧Shell脚本在我们日常开发和学习都有举足轻重的地位,比如看一些开源项目,比如项目中的各式各样的脚本,对于促进生产力工具有很大帮助!1命令小技巧1x命令进行跟踪调试执行!binsh
苹果数字遗产功能正式上线财经网科技12月14日讯,据新浪科技消息,苹果今日向iPhone和iPad用户推送了iOSiPadOS15。2更新,苹果数字遗产计划正式上线。通过数字遗产计划,用户可以最多指定5人