2021年1月5日
在listview或gridview中,用index去获颜色,挨个取一遍 1 Colors.primaries[index % Colors.primaries.length]……
阅读全文
2020年12月25日
首先自己写好模型类模板代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import 'package:json_annotation/json_annotation.dart'; part 'buy_record_data.g.dart'; ///标志class需要实现json序列化功能 @JsonSerializable() class BuyRecordData { ///属性 List<BuyRecordEntity> entities; /// 构造函数 BuyRecordData(this.entities); /// 这个函数在.g.dart中,命名就是类名+FromJson /// 直接写就行 报错也没关系 生成.g.dart文件之后就好了 factory BuyRecordData.fromJson(Map<String, dynamic> json) => _$BuyRecordDataFromJson(json); Map<String, dynamic> toJson()……
阅读全文
2020年12月2日
渲染过程会生成三棵树 widget树 element树 render object树 提高buid效率,在build方法中尽量少做事,层级越简单越好 setState方法尽量下放到底层节点 尽量减少重绘区域,使用repaint boundry 减少离屏渲染 比如save layer,clip path, 减少透明度使用,因为每……
阅读全文
2020年12月2日
1 2 3 4 5 6 7 8 enum MediaType { movie, //0 shortVideo, //1 other, //2 } var videoType = MediaType.values[0]; // videoType == movie 定义枚举和OC差别不大,取值的时候不可以直接和int比较,需要从枚举数组中根据index拿出来,比OC多了一步……
阅读全文
2020年11月27日
sliverList A sliver that places multiple box children in a linear array along the main axis. Each child is forced to have the SliverConstraints.crossAxisExtent in the cross axis but determines its own main axis extent. SliverList determines its scroll offset by “dead reckoning” because children outside the visible part of the sliver are not materialized, which means SliverList cannot learn their main axis extent.Instead,newly materialized children are placed adjacent to existing children.……
阅读全文
2020年11月26日
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 //函数 _showCupertinoActionSheet() async{ var result = await showCupertinoModalPopup( context: context, builder: (context) { return CupertinoActionSheet( title: Text('标题'), message: Text('内容'), actions: <Widget>[ CupertinoActionSheetAction( child: Text( '标题一', style: TextStyle( color: Color(0xFF00C599) ), ), onPressed: () { Navigator.of(context).pop('delete'); }, isDefaultAction: true, ), CupertinoActionSheetAction( child: T……
阅读全文
2020年11月25日
处理方法 加权限,同意任何来源 sudo spctl --master-disable //用完还原 sudo spctl --master-enable 按住command键,鼠标右键菜单选择打开app,出现窗口会出现打开按钮,正常情况下不会出现 参考:https://huajiakeji.com/macos/2019-07/2793.html 完。……
阅读全文
2020年11月25日
两种方案 1.借用第三方插件,让当前页面保持常量,别的页面跟随系统 wakelock: ^0.1.4+2 Wakelock.enable(); Wakelock.disable(); 2.调用fijkplayer自身的常量参数 二选一 await player.setOption(FijkOption.hostCategory, "request-screen-on", 1); FijkPlugin.keepScreenOn ; 参考:https://www.jianshu.com/p/8750de450850 https://fijkplayer.befovy.com/docs/zh/host-option.html#gsc.tab=0……
阅读全文
2020年11月25日
昨天以为pubspec.lock文件和cocoapods的profile.lock文件性质一样,可以生成,所以删除,结果遇见了编译报错,即使在执行了 flutter pub get 命令重新生成后,经过一番研究和队友协助,找到是这个问题,把老的恢复回来工程编译正常,下面是报错的关键字 Execution failed for task ':app:processDebugManifest'. > Manifest merger failed : Attribute provider...……
阅读全文
2020年11月24日
在main.dart文件的materialAPP.home属性返回一个UI,这个UI就是启动页,启动页的scanffold的body,返回一张图片 in main.dart return MaterialApp( home: SplashPage(), ); in SplashPage @override Widget build(BuildContext context) { return Scaffold( body: Container( child: Image.asset( 'assets/images/launch_image.png', fit: BoxFit.fill, width: double.infinity, height: double.infinity, ), ), ); }……
阅读全文