flutter
文章平均质量分 84
ifredom_
我常常以为,记忆是最容易模糊的东西,在时间的流逝里,人生如一轻烟般的淡去。
展开
-
Bluethooth
阅读时长10分钟. 蓝牙技术是一种近距离无线连接技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。历史:蓝牙技术是世界著名的 5 家大公司一爱立信(Ericsson)、诺基亚(Nokia)、东芝(Toshiba)、国际商用机器公司(IBM)和英特尔(Intel),于 1998 年 5 月联合宣布的一种无线通信新技术。蓝牙设备是蓝牙技术应用的主要载体,,常见蓝牙设备比如电脑、手机,平板等。原理: 蓝牙是通过发送来在主设备与从通信之间通信。系统组成。原创 2022-10-21 11:40:04 · 1088 阅读 · 0 评论 -
桥接(JSBridge)的原理
一、前言如今的互联网时代也称移动互联网时代,基本上每个人每天都会花费大量时间在移动设备上,早期的移动端应用大都使用原生开发(android,ios),而现在的移动开发技术选型上基本都是混合开发(Hybrid),混合开发是一种开发模式,指使用多种开发模型开发App,通常会涉及到两大类技术:原生Native、Web H5原生技术主要指iOS(Objective C)、Android(Java),原生开发效率较低,开发完成需要重新打包整个App,发布依赖用户的更新,性能较高功能覆盖率更高,发布流程较为复杂W原创 2022-03-10 21:41:43 · 1421 阅读 · 0 评论 -
flutter - 8种顶级状态管理
在 Flutter,最具争议的话题,到目前为止,开发者最关心的问题是选择哪个状态管理选项。老实说,几乎每个状态管理解决方案都会解决这个问题。他们都有自己的细微差别,各有所长。答案是没有最好的,只有自己最熟悉的一种,可以节省更多时间的才是最合适的。在这里列举了 8 种顶级状态管理以及我得个人经验,你可以好好决定。setstateriverpodprovidergetXget_itblocrxdartstates_rebuilderstacked8种状态管理setstate.原创 2022-02-11 14:17:25 · 3958 阅读 · 0 评论 -
光栅(Raster)&性能优化
光栅(Raster)&性能优化光栅化是把绘制指令转换成对应的像素数据,合成是把各图层栅格化后的数据进行相关的叠加和特性处理。这个流程称为 Graphics Pipeline。Flutter 采用的是异步分快光栅化光栅化和合成在一个线程,或者通过线程同步等方式来保证光栅化和合成的的顺序。直接光栅化:直接执行可见图层的 DisplayList 中可见区域的绘制指令进行光栅化,在目标 Surface 的像素缓冲区上生成像素的颜色值。间接光栅化:为指定图层分配额外的像素缓冲区(例如 A原创 2022-01-06 12:07:25 · 2850 阅读 · 0 评论 -
flutter - Provider 6
flutter Package - Providerversion: 6.0.1Provider 是用于 flutter 中用于数据管理的一个库,类似于 redux, vuex 等前端工具库Provider 什么时候使用?当程序比较复杂,拥有许多数据需要管理时使用当应用性能出现瓶颈时,需要优化加载性能时使用Provider 由哪几部分组成?Provider 主要分为两部分数据提供者1)Provider (数据变化,不更新 UI)2)ChangeNotifierProvide原创 2021-12-12 22:15:36 · 1841 阅读 · 0 评论 -
flutter - mixin
mixins维基百科中这样定义 mixin:In object-oriented programming languages, a Mixin is a class that contains methods for use by other classes without having to be the parent class of those other classes.(翻译:mixin 是一个普通类,可以让其他类在不继承这个类的情况下从这个类”借用”方法和变量。)Support for原创 2021-12-12 02:52:14 · 2035 阅读 · 0 评论 -
Flutter-生命周期
Flutter 中的生命周期,包含以下几个阶段:createState ,该函数为 StatefulWidget 中创建 State 的方法,当 StatefulWidget 被调用时会立即执行 createState 。initState ,该函数为 State 初始化调用,因此可以在此期间执行 State 各变量的初始赋值,同时也可以在此期间与服务端交互,获取服务端数据后调用 setState 来设置 State。didChangeDependencies ,该函数是在该组件依赖的 S原创 2021-12-02 23:21:54 · 1563 阅读 · 0 评论 -
flutter- 空安全: Try adding either an explicit non-‘null‘ default value or the ‘required‘ modifier.
空安全的报错一旦sdk升级到2.12以上之后,那么就会执行空安全检查,项目开始出现大面积报错。如图所示:The parameter ‘isDart’ can’t have a value of ‘null’ because of its type, but the implicit default value is ‘null’.Try adding either an explicit non-‘null’ default value or the ‘required’ modifier.原创 2021-06-30 17:28:12 · 3380 阅读 · 4 评论 -
flutter -蓝牙-flutter_ble_lib
蓝牙插件作为不会原生的flutter开发,插件是必须会找的。蓝牙插件目前可用的我发现的有两个:**flutter_ble_lib & flutter_blue **源码示例在最下方flutter_ble_lib使用方法flutter_ble_lib 插件目前在android上暂时没有发现明显的BUG,也可以将附近的蓝牙设备给搜索出来。读/写蓝牙设备数据的功能也是可用。(使用音乐midi蓝牙信号进行的测试解析)安装 flutter_ble_lib: 2.3.原创 2020-12-01 12:10:46 · 3002 阅读 · 11 评论 -
flutter - Future,microtask事件队列顺序
题目?dart线程优先级dart 中的代码执行优先级可以分为三个级别:在 Main 中写代码将最先执行;执行完 Main 中的代码,然后会检查并执行 Microtask Queue 中的任务,通常使用 scheduleMicrotask 将事件添加到 MicroTask Queue 中;最后执行 EventQueue 队列中的代码,通常使用 Future 向 EventQueue加入时间,也可以使用 async 和 await 向 EventQueue 加入事件。总结:Dart 中事件的原创 2020-10-14 10:07:52 · 1536 阅读 · 0 评论 -
flutter - jsonEncode(DateTime)
序列化DateTime当我想打印一下当前时间时,我先将DareTime转换成字符串,然后打印.因为在JavaScript中就是这么做的JSON.stringify(XXXX),没想到dart中报错了.print( jsonEncode(DateTime.now()) ); /// errorConverting object to an encodable object failed.使用自定义编码器进行序列化import 'dart:convert' show JSON;void原创 2020-07-20 15:59:42 · 1688 阅读 · 0 评论 -
给前端的flutter指南
指南介绍如果你是前端开发人员,对Flutter感到好奇,想了解一下?如果使用过React Native, 那么同为跨平台框架,flutter上手究竟有多难?然后我尝试了一下……令我惊讶的是,我能够立即编写出高效的代码。以下内容将比较 Dart / Flutter 和 JS / ReactNative。前端使用 Ts , flutter 使用 dart 语言。程序的入口对于js开发人员,程序并没有特定的一个入口。而dart则指定了**方法main()**作为程序启始入口index.t原创 2020-07-01 15:34:49 · 1428 阅读 · 0 评论 -
flutter - 数组索引Index问题
问题与JavaScript相似,List.map在Dart 中进行操作时,不能简单地访问列表的索引。比如,对于一个List,要获取它的的index索引,很难做到。List myList = ['a', 'b', 'c'];myList.map( (val, index) { // 错误,map方法没有index参数! // 如何获取index?})解决方案遍历列表时,有几种访问索引的方法。方法一. 使用地图条目将转换List为Map,然后映射包含键/值对的条目。映射中原创 2020-07-01 14:41:35 · 9406 阅读 · 0 评论 -
Flutter Package - Get_it
Get_itGet_it是一个服务定位器,更通俗具体一点得说它是一个管理器。它的作用:代替InheritedWidget或Provider在用户界面中访问对象。对于需要全局调用得对象尤其省事。什么叫做管理器我们通过介绍如何使用Get_it来解释什么叫做管理器(工具箱)。比如,如果我是一个铁匠,工作的时候要使用锤子,那么我就从工具箱里面找出来锤子,如果我要用扳手,那么我也从工具箱中把我的扳手找出来。Get_it在现实中得定位大致就是一个工具箱。要成为一个好用的工具箱,首先得把各种各样得工具放进去,原创 2020-06-19 10:40:52 · 1779 阅读 · 0 评论 -
flutter: Skipped 32 frames! The application may be doing too much work on its main thread.
Skipped 32 frames警告信息翻译:跳过32帧!应用程序可能在其主线程上做了太多工作。在模拟器上运行一个很简单得程序,debug模式下启动时,提示此信息。然后模拟器一直白屏,无法加载程序。模拟器 android API: 28这个问题属于flutter得性能问题, 就是主进程要做得事情太多,分配得不够合理,等官解决办法# 删除构建缓存flutter clean# 启动flutter run如果上面得指令对你无效得话,那么删除模拟器上的应用,再次重新安装运行。...原创 2020-06-18 14:59:58 · 5446 阅读 · 3 评论 -
flutter package冲突
package相互冲突比如用到了一个包 hive_generator,它内部用到了dartX,并要求dartX版本为大于0.3.0,同时我还用到了另一个包 quiver,它内部也用到了dartX,又要求dart版本小于0.3.0.显然这是不可调和的矛盾,似乎目前只有一条路,要么不使用hive_generator,要么不使用quiver?解决办法如下:# pubspec.yaml# 强制所有得依赖package,只要内部使用到 dartx包时,都强制使用^0.3.0版本(官方不建议这样配置,此原创 2020-06-11 11:32:10 · 447 阅读 · 0 评论 -
flutter webview 与 前端vue通信
flutter有3个比较好的webview插件webview_flutter : 是官方维护的 WebView 插件,特性是基于原生和 Flutter SDK 封装,继承 StatefulWidget,因此支持内嵌于 flutter Widget 树中,这是比较灵活的;flutter_webview_plugin : 基于原生 WebView 封装的 Flutter 插件,将原生的一些基本使用 API 封装好提供给 Flutter 调用,因此并不能内嵌于 Flutter Widget 树中,因此在原创 2020-05-28 21:18:38 · 4580 阅读 · 2 评论 -
9个flutter 动画包
1. Animator用更少的代码做更多的事,这个包可以使动画像Flutter中最简单的小部件一样简单,并提供类似隐式和显式的动画。2. Simple Animations这个包创建了一些自定义动画,使开发人员轻而易举地设置动画风格,并提供了大量文档。3. AnimatedWidgets前两个库着重于如何编写动画,这个包是一组小部件的集合,而小部件提供了类似隐式的动画,并使用Bloc架构针对MVVM进行了优化。4. Flutter Sequence Animation如果你想为该程序包链原创 2020-05-20 14:37:35 · 1669 阅读 · 0 评论 -
flutter - built_value 自动生成model
使用build_value自动生成第一步,创建预设得抽象类第二步,执行生成命令创建model文件创建一个文件,testmode.dartimport 'package:built_value/built_value.dart';part 'testmode.g.dart';abstract class Testmode implements Built<Testmod...原创 2020-03-22 22:22:33 · 2858 阅读 · 1 评论 -
dio,二次封装
封装核心思想将请求地址隐藏起来,并对http请求数据加盐保密。固定请求地址, request URL 所有接口都是同一个接口区别,由apiCode区别各个不同得接口请求参数加盐保密,参数sign自定义传参种是否需要token,所有传输数据由params包裹请求结果效果图如下:封装后,优雅调用// 调用方法 Future _submit() async { var p...原创 2020-03-06 13:08:57 · 1328 阅读 · 0 评论 -
2019最流行的flutter库
常用高分库在本文中,将列出12个非常有用且维护良好的社区Flutter库。1. fl_chart由于目前还没有官方的图形库,因此在Flutter中提供了一个出色的图形库。它具有几个有用的图形,例如条形图,折线图和饼图。支持iOS和Android。文档在这里.2. url_launcher这个插件,可帮助开发者通过配置的方案打开给定的URL,并在移动应用程序中从中执行各种功能。支持iO...原创 2019-11-26 10:37:51 · 1205 阅读 · 0 评论 -
flutter - 设计模式-单例模式
单例模式效果: 单例模式.无论创建多少个实例,都只返回同一个实例. 只暴露你想暴露的公共成员和方法.(此处公共成员为:instanceVar,公共方法为instanceFun)使用场景:dart-单例准确来说,此单例模式是使用Dart编写,用 Dart作为标题更好,不过flutter跟Dart是一家,不用分彼此。import 'package:flutter/material.d...原创 2019-10-21 23:37:57 · 1669 阅读 · 0 评论 -
flutter - sort List排序
dart中,对List结构数据进行排序注意 sort方法 会直接改变原List数组结构List<Map> myList = [ { 'name' : 'ifredom',age:23}, { 'name' : 'JackMa',age:61}, { 'name' : 'zhazhahui',age:48},];myList.sort((a, b) => ...原创 2019-10-18 16:29:16 · 12976 阅读 · 0 评论 -
flutter -自定义dialog弹窗
弹窗内容需要超出本身时这里定位有个小技巧,还可以使用 Align()来替代Positioned(),便于定位到中间位置,但是超出内容本身得区域,比如蓝色小圆,具体位置还需要计算import 'package:flutter/material.dart';class CustomDialog extends StatelessWidget { final String title,...原创 2019-10-15 18:07:39 · 3082 阅读 · 2 评论 -
flutter - 强制横屏/竖屏
flutter 强制横屏void main() { SystemChrome.setPreferredOrientations( [DeviceOrientation.portraitUp,DeviceOrientation.portraitDown]) .then((_) { runApp(MyApp()); });}flutter 强制横...原创 2019-10-12 10:25:58 · 1602 阅读 · 0 评论 -
flutter - 布局必备手册
flutter布局相信很多同学,都是在wendux的flutter中文社区中学习入门的,但是我在看完之后,使用 flutter 开发项目时,布局依然遇到了一些困难,不知道改用哪种widget,所以详细记录了一下项目必用的布局内容。写作风格参考了 阮一峰的flex布局目录Row and Column 【横向,纵向布局】IntrinsicWidth and IntrinsicHeight ...原创 2019-10-08 14:07:58 · 498 阅读 · 0 评论 -
flutter - 渐变 LineGradient
定义 Gradient 的两种方式方式一,widget形式:Container( decoration: BoxDecoration( gradient: LinearGradient( begin: Alignment.topLeft, end: Alignment(0.8, 0.0), // 10% of the width, so there are ...原创 2019-09-28 20:16:06 · 8426 阅读 · 0 评论 -
No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
解决banfa第一步,找到你的androidSDK位置。如果下载了NDK,那么会有一个一个名为“ndk-bundle”的文件夹第二步,找到ndk-bundle,会发现里面没有 mips64el-linux-android文件夹第三步,单独下载,,然后解压缩,覆盖toolchains文件...原创 2019-09-18 10:39:53 · 303 阅读 · 0 评论 -
flutter - typedef
typedef官方说明:In Dart, functions are objects, just like strings and numbers are objects. A typedef, or function-type alias, gives a function type a name that you can use when declaring fields and ret...原创 2019-09-10 14:30:18 · 2297 阅读 · 0 评论 -
flutter - 构造函数
构造函数class MyWidget extends StatefulWidget { final String userName; MyWidget({Key key, this.userName}) : super(key: key); _MyWidgetState createState() => _MyWidgetState();}class _MyWidgetS...原创 2019-09-09 15:52:16 · 6148 阅读 · 0 评论 -
flutter color Api 使用
flutter中得16进制颜色在flutter中,如果使用#ffffff这样得16进制设置字体颜色,是不能直接设置得。使用方法如下:使用 #ffffff 这种16进制颜色// colorUtils.dartimport 'package:flutter/material.dart';class ColorUtils { static Color hexToColor(String ...原创 2019-08-29 16:42:54 · 979 阅读 · 0 评论