flutter
转战flutter,记录工作当中遇到的小问题
金鱼女士
做过 iOS开发 (OC/swift/flutter),目前在写前端 (react/vue/Taro/微信小程序 )
展开
-
flutter 单线程异步 及 isolate 使用过程遇到的问题
基本信息: Dart 是单线程模型.线程内部维护一个loop. loop包括两个队列, 队列里就是Future任务:microask queueevent queue且前者执行优先级高于后者, 如图我们平时写的代码就运行在flutter创建好的UI线程. 当运行耗时代码时页面会有卡顿感, 就是掉帧了.解决方案: 开辟新线程处理耗时操作, 把处理结果传给 UI 线程刷新页面.Dart 开辟新线程的方式是使用 isolate.isolate 与普通线程的区别在于: isolate之.原创 2021-07-20 18:32:30 · 1193 阅读 · 0 评论 -
flutter swiper插件报错: ScrollController not attached to any scroll views
key: UniqueKey()Swiper( key: UniqueKey(), //添加key autoplay: true, loop: (widget.datas.length > 1) ? true : false, physics: const PageScrollPhysics(parent: const BouncingScrollPhysics()), itemBuilder: (BuildC..原创 2021-05-06 18:23:59 · 290 阅读 · 0 评论 -
flutter 通过GlobalKey在自定义Widget外部获取其state刷新页面
PageA的定义如下class PageA extends StatefulWidget { PageA({Key key}) : super(key: key); @override PageAState createState() { return PageAState(); }}class PageAState extends State<PageA> { static GlobalKey homeKey = GlobalKey(); ///获.原创 2021-01-14 18:05:02 · 1236 阅读 · 0 评论 -
flutter push新页面A, 并且该页面关闭时返回的是首页
var router = MaterialPageRoute( builder: (context) => APage();///跳转A页 && 移除导航栈里除了首页的路由Navigator.pushAndRemoveUntil(context, router, (route) { return route.isFirst; ///导航栈的第一个: 首页});...原创 2021-01-14 16:11:49 · 621 阅读 · 0 评论 -
flutter pop回首页, 不管导航栈有多少路由
Navigator.popUntil(context, (route) { return route.isFirst;});原创 2021-01-14 16:08:21 · 625 阅读 · 0 评论 -
flutter setState解析 & frameWork层和engine层的交互
有状态的widget(StatefulWidget) UI刷新要调用setState.自定义的StatefulWidget要重写setState方法.那么setState内部做了什么处理, 刷新流程是怎样的呢?@protected void setState(VoidCallback fn) { ... _element.markNeedsBuild(); }void markNeedsBuild() { ... if (dirty)原创 2020-11-20 18:49:50 · 413 阅读 · 0 评论 -
flutter Dart Mixin后关于调用super的理解
上代码abstract class BaseClass { funcPrint() { print("BaseClass\n"); }}mixin AClass on BaseClass { funcPrint() { print("AClass\n"); super.funcPrint(); }}mixin BClass on BaseClass { funcPrint() { print("BClass\n"); super.fu原创 2020-11-17 10:52:15 · 1393 阅读 · 1 评论 -
flutter-关于更新flutter本地库 flutter upgrade 和 flutter channel
今天发现一个问题:同事的电脑命令行输入:flutter upgrade flutter本地库版本升级到了v1.22我的电脑输入: flutter upgrade flutter本地库版本升级到了v1.24竟然没有升级到相同的版本…后来发现是因为我俩的flutter channel不在同一个分支上, 我在dev分支, 他在stable分支.切换到同一个分之后再敲命令flutter upgrade 就会更新到相同的flutter 版本了...原创 2020-10-26 17:18:29 · 2439 阅读 · 0 评论 -
flutter TextField 键盘弹出和隐藏,限制仅英文输入, 禁止联想输入
var focusNode = FocusNode(); RegExp englishRegExp = RegExp(r'(^[a-zA-Z]*$)'); String inputText = ''; showKeyboard() { focusNode.requestFocus();}dismissKeyboard() { focusNode.unfocus();}getTextField() { var currentModel = currentItem(); ..原创 2020-10-22 16:41:30 · 3920 阅读 · 1 评论 -
flutter-获取父widget的大小
方法就是在原组件的外面加一层LayoutBuilder注释的第一句话白话翻译: 依据父widget的大小创建一棵widget树/// Builds a widget tree that can depend on the parent widget's size.////// Similar to the [Builder] widget except that the framework calls the [builder]/// function at layout time and pro原创 2020-09-23 18:41:56 · 2945 阅读 · 0 评论 -
flutter - 报错: setState() or markNeedsBuild() called during build
当首次进入页面, 弹出自定义的引导页面代码如下@override initState() { super.initState(); showTipsView(); }showTipsView() { showGeneralDialog(context: context, barrierDismissible: false, barrierLabel: "", barrierColor: Colors.black.withAlpha(40),原创 2020-08-21 17:55:45 · 3516 阅读 · 0 评论 -
Future-怎么停止一个未开始执行的延时任务
执行一个延时任务,一般会用Future.delayed,比如延时0.5s播放一个音频文件Future.delayed(Duration(milliseconds: 500), () { playAudio(url);});现在有一个需求:点击<下一步>按钮时停止播放。0.5s后执行任务,音频播放的过程中停止播放:audioPlayer.stop();0.5s前点击了<下一步>按钮,需要停掉还未执行的任务,...原创 2020-07-16 18:53:33 · 1058 阅读 · 0 评论 -
Flutter 路由原理解析
原理详解源码详解原创 2020-05-09 16:05:21 · 280 阅读 · 0 评论 -
Flutter BuildContext与Element的关系
首先,BuildContext是一个抽象类,可以理解为iOS里的protocol而Element是实现了该协议的类,看下面的源码就知道了abstract class Element extends DiagnosticableTree implements BuildContext...原创 2020-04-17 15:12:58 · 300 阅读 · 0 评论 -
Flutter 打开背景透明的路由页面
1、PageRouteBuilder – opaque:false2、Scaffold-- backgroundColor: Colors.transparentNavigator.of(context).push( PageRouteBuilder( opaque:false, pageBuilder: (context, animation, secondaryAn...原创 2020-03-25 16:29:16 · 4879 阅读 · 4 评论