Flutter 工程, 使用flutter编写的趣动App

Primroses de08d89c87 feat:登录 4 years ago
android 17df373038 feat:运动 4 years ago
ios 23ef8decf0 feat:new Project 4 years ago
lib de08d89c87 feat:登录 4 years ago
test def12afc29 provider demo 4 years ago
.gitignore 23ef8decf0 feat:new Project 4 years ago
.metadata 23ef8decf0 feat:new Project 4 years ago
README.md 6511faf1c5 feat:完成第二个tab的页面 4 years ago
api.md 297aef3ece 列表 - 社区详情 4 years ago
build_runner.bat c3ffe2bfa9 "" 4 years ago
format_check.bat 1bf9ae4123 feat:new game 4 years ago
pubspec.lock de08d89c87 feat:登录 4 years ago
pubspec.yaml de08d89c87 feat:登录 4 years ago

README.md

sport

A new Flutter project.

图片的放置

  1. 先在pubspec.yml中声明assets位置,因为flutte没有预先定义的文件结构
// pubspec.yaml
 assets:
   - assets/img
  1. 假如需要放置2.x,3.x的图片的时候
assets:
 - assets/2.0x/image
 - assets/img       # Base 1.0 
  1. 加载本地图片AssetImage
  • return AssetImage()
Widget build(BuildContext context){
  return Image.asset("loacl_url");
}

placeholder(占位符)

transparent_img 插件 能从本地 内存 中加载placeholder

cached_networt_image

从本地中加载缓存的图片

Icon

可以用 material_icon

ListView.builder(itemLength,itemBuilder) 动态创建的List

customScrollView

SliverAppBar 与CustomScrollView、NestedScrollView集成的材质设计应用栏

統一的滚动效果

stateLessWidget 什么情况会被调用

  • widget 插入树中
  • widget的父级更改配置的时候
  • 当它依赖的inheritedWidget 发生变化的时候

progressIndicator 菊花loading

Builder是提升性能的关键 setState会重新绘制 但是 Builder不会

Future(Context,AsyncSnapshot)
  • AsyncSnapshot
    • 有两个属性 connectionState (none,waiting active done)
    • data 最新的数据
    • error 接受的错误的对象
    • hasData
    • hasError

## 生成器返回的格式没有问题

  • 因为返回的不是JSON格式 所以 格式化起来有点麻烦

shared_preferences 异步Key-Value的 存储

列表优化 listView_builder 长列表 短列表 listView

性能分析

  • flutter run --profile

项目目录

lib 
  assets    # 资源文件
  bean      # 基础实体类
  constant  # 常量
  model     # v-model 
  pages     # 具体的页面
  router    # 路由
  services  # 服务
  store     # 数据中心 
  utils     # 工具类库
  widgets   # 通用widgets

changeNotifyProvider Prodiverbuilder 两种不同的实现Provider的情况

//            Container(
//              child: ProviderWidget<GameVideoListModel>(
//                builder: (context, model, builder) {
//                  _initializePlay(model.list[0].videoUrl);
//                  return FutureBuilder(
//                    future: _initializeVideoPlayerFuture,
//                    builder: (context,snapshot){
//                      return ListView.builder(itemBuilder:(context,index){
//                        return VideoItem(controller: _controller);
//                      },shrinkWrap: true,);
//                    },
//                  );
//                },
//                onModelReady: (m) => m.initData(),
//              ),
//            )

hassize 没有高度 或者是 不够撑开高度

Expand 不能包着 Expand ?