19180001匡展锐项目报告.docxVIP

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
沈阳师范大学科信软件学院 实 验 报 告 实验题目: 移动增值业务开发(期末综合作业) 实验时间: 2022.5.28 姓 名: 匡展锐 学 号: 专业年级: 2019级网络工程 实验的灵感来自于网络flutter教程的教学,在作者的教学中学习了很多相关知识,包括一些图片素材的来源也来自于网络视频教程,并根据视频仿作了一款类似的软件,下面是我的实验思路: 1.1 本地资源配置 在项目根目录下的?pubspec.yaml?文件 引入本地资源 第三方包 1.2 页面缓存 底部bottomNavigationBar页面缓存 类似于常用的 app 都有底部的切换功能,如图所示: 使用了组件 IndexedStack,,它可以页面切换时不会去销毁或替换当前页,而是层叠在一起。 TabBar 切换页面缓存 切换 tabbar 时,print 不会打印,实现了页面保持状态。 1.3 主题配置 在lib目录下新建config的文件下 常用Colors config下新建 app_colors.dart文件。 主题样式 config下新建 app_thumb.dart文件。 1.4网络请求封装 网络请求采用了 dio库,在 pubspec.yaml 文件中注册并保存。 dependencies: # http请求库 dio: ^4.0.0 在lib目录下新建http 与 config的目录 以下封装搬自: /post/6844904190838325262 请求配置参数 config目录新建 http_options.dart文件 因为项目是在模拟器中运行,所以请求的地址不能是域名形式。模拟器的不管localhost还是 都是它本机的,它也是操作系统。这时候模拟器的请求地址是我们本机的地址,也就是我们 cmd终端中运行 ipconfig后看到的IPv4地址: 请求异常处理 http目录下新建 http_exception.dart文件 拦截器 http目录下新建 http_interceptor.dart文件 请求单例类 http目录下新建 http_request.dart文件 请求静态化 http目录下新建 http.dart文件,我们将 HttpRequest 类包状态静态类,方便调用。 1.5编写用户与歌曲数据 用户模型层 每个页面或每个模型都会有返回用户信息,在lib目录下新建models文件,再创建user_model.dart文件 import 'package:flutter/cupertino.dart'; /// 用户列表模型 class UserList { /// 包含 UserItem 模型的集合 List<UserItem> list; UserList(this.list); /// 循环后台返回的数组 将每一项组装成 UserItem factory UserList.fromJson(List<dynamic> list) { return UserList( list.map((item) => UserItem.fromJson(item)).toList(), ); } } /// 用户列表项/用户详情模型 class UserItem { final int id; final String coverPictureUrl; final String nickname; final String type; final int musicCount; final int musicPlayCount; UserItem({ @required this.id, @required this.coverPictureUrl, @required this.nickname, @required this.type, @required this.musicCount, @required this.musicPlayCount, }); /// 将 Json 数据转换为实体模型 factory UserItem.fromJson(dynamic item) { return UserItem( id: item['id'

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

认证主体崔**

1亿VIP精品文档

相关文档

相关课程推荐