Flutter
Flutter
天渺工作室
全栈工程师+设计师+业余音乐制作人
展开
-
Flutter监听安卓系统字体变化,监听安卓系统深色模式切换
Flutter监听安卓系统字体变化;安卓系统深色模式切换Flutter通过强大的MediaQuery控件做到监听前设备的信息及其设备信息的动态变化。原创 2023-01-27 22:24:15 · 750 阅读 · 0 评论 -
Could not locate aapt. Please ensure you have the Android buildtools installed
Could not locate aapt. Please ensure you have the Android buildtools installed.Exception: Problem building Android application: see above error(s)原创 2023-01-27 16:02:01 · 1512 阅读 · 0 评论 -
flutter 中的深拷贝
在web开发中,在遇到基础类型和复杂类型 的深拷贝问题大部分可以通过 let newObj= JSON.parse(JSON.stringify(obj));来完成深拷贝(函数除外 拓展https://www.jianshu.com/p/1c142ec2ca45)flutter 的dart 语法在处理json map 的时候可以通过类似思路Map clonedObject = JSON.decode(JSON.encode(object));...原创 2020-12-11 19:12:57 · 2660 阅读 · 1 评论 -
Flutter点击事件的穿透,父元素点击事件覆盖了子元素点击的问题
在web 中类似的情况的都被成为点击穿透事件在flutter中 ,组件的嵌套 也存在类似情况,flutter中的所有点击事件 一层一层源码找 最终都是有兴趣可以去看官方文档GestureDetector 组件的源码中的behavior 属性三个内容 枚举 值方法1...InkWell( onTap: () {}, child: GestureDetector( beh...原创 2020-12-02 19:01:26 · 5900 阅读 · 0 评论 -
flutter dart语法判断 0/0==Nan 1/0==Infinity的问题
开始还疑惑 了很长时间,最后发现官方竟然有一个方法,太坑了!!!//判断0/0的NaN...(0/0).isNaN==true...//判断1/0的Infinity...(1/0)==double.infinity //true...不同语言处理数字一定要注意精准度问题和类似的问题...原创 2020-11-19 17:20:51 · 1637 阅读 · 0 评论 -
Flutter 编译打包安卓com.google.common.util.concurrent.ListenableFuture found in modules guava-20.0.jar
报错信息FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:checkDebugDuplicateClasses'.> 1 exception was raised by workers: java.lang.RuntimeException: Duplicate class com.google.common.util.concurrent.Listena原创 2020-10-22 11:21:25 · 962 阅读 · 0 评论 -
flutter dio请求DioError [DioErrorType.DEFAULT]: SocketException: Insecure socket connections are disal
一般发生在是安卓9的设备上,在flutter 发起网络请求中,dio报错DioError [DioErrorType.DEFAULT]: SocketException: Insecure socket connections are disallowed by platform: ****解决方案:在安卓/android/app/src/main/AndroidManifest.xml 中检查,是否存在<uses-permission android:name="androi..原创 2020-09-29 15:53:17 · 2066 阅读 · 0 评论 -
flutter 父级宽度不固定,子集多个元素自动填充的布局方案方法
Flutter 开发中,很多应用场景中都会存在父级宽度不固定的情况,子集多种混合元素块的情况情况1一般在如果子集不存在自动填充100%宽和高, Expanded 就能解决Row( children: <Widget>[ //自动填充 Expanded( child:Container() ), //固定宽度 Text( "原创 2020-09-26 21:53:32 · 1341 阅读 · 0 评论 -
flutter dart语法合并多条List 数组
flutter dart语法合并多条List 的案例List<dynamic> test1=[];List<dynamic> test2=[];List<dynamic> test3=[];方法1List<dynamic> test4=[];test4..addAll(test1)..addAll(test2)..addAll(test3);方法2List<dynamic> test4=[];test4=[..原创 2020-09-18 00:32:31 · 5224 阅读 · 0 评论 -
flutter 图片引入和三方字体包引入
pubspec.yaml 文件主要用于三方插件的引入在最底下flutter: uses-material-design: true assets: - assets/image/ //这样子图片就不用一张一张的一如了 项目里面直接用 fonts: - family: DINAlternate-Bold fonts: - asset: assets/font/DIN-Alternate-Bold.ttf //引入三方字体.原创 2020-09-06 23:51:00 · 846 阅读 · 0 评论 -
flutter 页面频繁刷新节省页面性能的组件RepaintBoundary
在flutter 页面中,如果存在定时器操作或者人为的 频繁操作setState({});刷新页面需要更新的页面结构可以用RepaintBoundary组件嵌套,flutter 会将包含的组件独立出一层"画布",去绘制。//频繁刷新的性能节约嵌套组件 RepaintBoundary return RepaintBoundary( child: Text( "${showTime}",// softWrap: true,// ...原创 2020-07-09 17:27:44 · 1705 阅读 · 0 评论 -
flutter TextField 输入框被软键盘挡住的解决方案
以前搞ionic1~4的开发中 和react-native flutter中的机制完全不同, 在flutter 中 当前页面如果存在元素被软键盘挡住 的情况 页面元素的最外层肯定得嵌套一层 SingleChildScrollViewbody: Container( //SingleChildScrollView 的父级元素得有高度 最外层Contai...原创 2019-07-11 09:40:35 · 6415 阅读 · 0 评论 -
flutter 高斯实现模糊
flutter的高斯模糊其实是一个模糊化处理的Container元素块 定位在图片的上层 ClipRRect( //切割很重要 child: Stack( overflow: Overflow.clip, alignment: Alignment.center, children: <Widget>[ Container(原创 2020-05-24 18:46:24 · 1607 阅读 · 0 评论 -
flutter 监听软键盘的弹出和关闭
官方有一个keyboard_visibility 插件,但是不推荐用问题很多 (好像作者已经不更新了 而且编译会导致build.gride 报错)https://pub.dev/packages/keyboard_visibility需要监听软键盘的弹出和隐藏 主要用WidgetsBindingObserver 这个继承类...class BottomKeyboardInputState extends State<BottomKeyboardInput> with Wid...原创 2020-05-16 23:37:37 · 2306 阅读 · 0 评论 -
flutter实现简单的模糊搜索
实现迷糊搜索其实和js 中的思路是一模一样的js中://list 数据源 keyWord搜索数符function demo(list, keyWord) { var arr = []; for (var i = 0; i < list.length; i++) { if (list[i].indexOf(keyWord) >= 0) { arr.push(list[i]); } } return arr;原创 2020-05-11 11:34:24 · 2606 阅读 · 0 评论 -
flutter 自定义类时间拨动选择插件
flutter 官方给的ListWheelScrollView 组件就是专门用于此类场景的效果:4个可上下拨动list单个拨动组件代码ListWheelScrollView( controller:hourScrollController, ...原创 2020-05-07 11:05:30 · 1618 阅读 · 2 评论 -
flutter父组件调用子组件
子组件调用父组件就用callBack而父组件调用子组件除了eventBus 的通知还可以 用GlobalKey()//父组件... InkWell( onTap:(){ childKey.currentState.testFun("233"); }, child: Test(ke...原创 2020-04-29 11:44:09 · 3039 阅读 · 0 评论 -
flutter Navigator.pushNamedAndRemoveUntil 的用法和参数含义
flutter 如果要认真学 还是要看看源码的源码//前进 Navigator.of(context) .pushNamedAndRemoveUntil( “跳转路径”, ModalRoute.withName('/demo'),//清除旧栈需要保留的栈 arguments:{"...原创 2020-04-27 14:59:51 · 15455 阅读 · 3 评论 -
flutter 中的Future方法读取踩的小坑
flutter dart 语法中Future其实和js中的Promse 原理是一样的Future 声明的函数都是异步函数void testThen1() { Future f1 = new Future(() => null); Future f2 = new Future(() => null); Future f3 = new Future(() =&g...原创 2020-04-26 17:13:07 · 1694 阅读 · 0 评论 -
flutter TextField输入框焦点事件的捕捉 监听焦点事件
//实例化 FocusNode _focusNode = FocusNode();//监听得放在初始化中@override void initState() { super.initState(); //输入框焦点 _focusNode.addListener((){ if (!_focusNode.hasFocus) {// p...原创 2020-04-07 11:04:19 · 4976 阅读 · 0 评论 -
flutter toStringAsFixed(0)踩的小坑 保留0位小数 自动四舍五入的情况
flutter toStringAsFixed的源码但是在实践开发中 (0.66).toStringAsFixed(0)这种情况不管怎么操作 保留0位数的时候 最终结果都是1 莫名其妙的会把小数点后面的数字四舍五入 应该和dart 的语法和dart的浮点运算有关系 缺失和js 这种语言区别很大解决方法:1.运算时转换字符串截取小数点后面的2.自己找找三方的浮点运算插...原创 2020-04-06 22:27:48 · 3312 阅读 · 0 评论 -
flutter清除缓存 map遍历Widget 遍历数据有缓存 清除缓存的方法
查看Widget 的源码 就能发现Widget 视视图更新时候的判断机制 缓存现象多出现在数据遍历生成Widget的情况下oldWidget.runtimeType == newWidget.runtimeType 官方的建议是不能用list 的索引数值 来做key 那么 最好办法还是用数据的唯一ID 或者生成一个永不重复的随机数不建议永时间戳当key 因为循环的速度比时...原创 2020-03-29 03:47:19 · 920 阅读 · 0 评论 -
flutter 图片形状裁剪
flutter 中 不管是三方图片显示插件 还是自带的Image.assetImage.netWork 操作图片外层的Container 元素 ,是不能限制图片的显示形状的官方自带ClipOval和 ClipRRect 方法//圆形裁剪ClipOval( child: Image.asset( 'assets/images/demo1...原创 2020-03-20 19:48:00 · 818 阅读 · 0 评论 -
flutter try catch和使用loading时的注意事项
官方维护的一些 loading 插件(官方的有些插件某些有坑 也可以自己封装)https://pub.flutter-io.cn/packages/flutter_spinkithttps://www.ctolib.com/huangjianke-flutter_easyloading.html自己在封装好laoding 插件之后 在http请求的使用过程中 需要注意laoding...原创 2020-03-08 12:01:00 · 5070 阅读 · 0 评论 -
flutter一次调用多个接口 执行多个操作 Future.wait的用法
在前端js 中,有些应用场景需要一次性调用多个接口或者进行多个事件同时执行可以用promse.all 来操作在flutter 中有类似Future.wait的用法demo1(){ return true;}demo2(){ return true;}demo3(){ return false;}//调用 //dynamic 类型自己定chang...原创 2020-03-03 13:53:26 · 6063 阅读 · 1 评论 -
flutter节流 dart事件节流 搜索节流 连续触发节流的优化写法
直接上代码Timer _timer;//设置节流周期为390毫秒Duration durationTime = Duration(milliseconds:390);//事件触发处...onChanged:(e){ _timer?.cancel(); _timer = Timer(durationTime, () { ...原创 2020-02-26 10:47:59 · 1103 阅读 · 0 评论 -
Flutter map遍历获取List的索引值
废话不多说 直接上代码 官方的写法list tabs=[{},{},{}];tabs.asMap().keys.map((item)=>Container( child:Text("${'索引值'+item}"),)).toList()要获取某一项只能tabs[索引] 来获取...原创 2020-02-24 18:10:47 · 7606 阅读 · 0 评论 -
flutter 软键盘挤压页面导致变形溢出
flutter 解决这种有两种办法 一种就是传统的嵌套SingleChildScrollView 让页面可以上下滑动 如果不想改变页面结构flutter 类入口的 Scaffold 的resizeToAvoidBottomInset: false 就可以注意: 一个页面不管嵌套了多少类 只要用了Scaffold 都需要设置 resizeToAvoidBottomInset:...原创 2020-01-16 17:11:11 · 2440 阅读 · 2 评论 -
flutter Invalid value: Valid value range is empty: -1
Another exception was thrown: RangeError (index): Invalid value: Valid value range is empty: -1flutter 项目中报这个错排除编译错误 打包grade 报错 的情况下很可能就是这种情况不管后面的数字是几 大部分应该都是程序逻辑中的计算越界所致仔细检查代码中 有没有计算...原创 2020-01-01 13:16:00 · 1720 阅读 · 0 评论 -
flutter 编译报错 ../extended_network_image_provider.dart:63:41: Error: Type 'DecoderCallback' not found
flutter 编译的时候报错Compiler message:../../../.pub-cache/hosted/pub.dartlang.org/extended_image_library-0.1.9/lib/src/extended_network_image_provider.dart:63:41: Error: Type 'DecoderCallback' not found...原创 2019-12-23 17:24:28 · 2346 阅读 · 0 评论