MacBook-Pro:~ xun$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.3, on macOS 11.2.3 20D91 darwin-x64, locale
zh-Hans)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
[!] Xcode - develop for iOS and macOS
! CocoaPods 1.9.1 out of date (1.10.0 is recommended).
CocoaPods is used to retrieve the iOS and macOS platform side’s plugin
code that responds to your plugin usage on the Dart side.
Without CocoaPods, plugins will not work on iOS or macOS.
For more info, see https://flutter.dev/platform-plugins
To upgrade see
https://guides.cocoapods.org/using/getting-started.html#installation for
instructions.
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.1)
[✓] VS Code (version 1.55.2)
[✓] Connected device (2 available)

一 基本集成

折线图是一个 Widget,和普通 Widget一样声明即可:

LineChart(
sampleData(),
),

LineChart的构造参数是一个LineChartData,其属性如下:

属性名称 描述 默认值
lineBarsData 图表要展示的线的数组,数组的每一位代表一条线。 []
betweenBarsData 填充2条图表线之间的区域 []
titlesData 坐标,可以设置四个方向的标题 FlTitlesData()
axisTitleData 标题 FlAxisTitleData()
extraLinesData 额外的水平和垂直线的图形细节
lineTouchData 触摸交互详细信息 LineTouchData()
rangeAnnotations 在图表后面显示范围注释,请检查RangeAnnotations RangeAnnotations()
showingTooltipIndicators 根据提供的位置(x)显示工具提示,以及LineBarSpot的列表 []
gridData 网格数据 FlGridData()
borderData 边框数据 FlBorderData()
minX 获取x轴的最小值x,如果为null,从lineBars中读取值 null
maxX 获取x轴的最大x,如果为null,从lineBars中读取值 null
minY 获取y轴的最小y,如果为null,从lineBars中读取值 null
maxY 获取y轴的最大y,如果为null,从lineBars中读取值 null
clipData 将图表裁剪到边框(防止绘图超出边框) FlClipData.none()
backgroundColor 图表后面绘制的背景色 null

/// 配置文件
LineChartData sampleData() {
return LineChartData(
//? 是否可以点击
lineTouchData: LineTouchData(
enabled: enableLineTouchData,
),
//? 网格线配置
gridData: FlGridData(
show: showGridData,
),
axisTitleData: _buildFlAxisTitleData(),
//? 标题
titlesData: _buildTitles(),
//? 边框
borderData: _buildBorderData(),
minX: 0,
maxX: 14,
maxY: 6,
minY: 0,
//? 线条数据
lineBarsData: linesBarDatas(),
);
}

二 线条配置

配置了三条线,所以lineBarsData对应的数组有三个元素。

//? 绿线的配置
LineChartBarData(
//? 取样点
spots: [
FlSpot(1, 1),
FlSpot(3, 4),
FlSpot(5, 1.8),
FlSpot(7, 5),
FlSpot(10, 2),
FlSpot(12, 2.2),
FlSpot(13, 1.8),
],
//? 是否是曲线
isCurved: isCurved1,
// curveSmoothness: 0,
colors: const [
Color(0x444af699),
],
//? 线的宽度
barWidth: 4,
//? 线头是否是圆形
isStrokeCapRound: true,
//? 是否显示数据点
dotData: FlDotData(
show: false,
),
//? 是否显示线上区域
aboveBarData: BarAreaData(show: showAboveBarData, colors: [
const Color(0x444af699),
]),
)

看下LineChartBarData属性:

属性名称 描述 默认值
show 是否显示或隐藏线条 True
spots 要展示的线条数据点,参考 FlSpot []
colors 线条颜色,如果提供了多种颜色,则将为渐变色 [Colors.redAccent]
colorStops 获取渐变颜色的停止位置,了解更多 null
gradientFrom 确定渐变梯度的开始,每个数字应介于0和1之间。 Offset(0,0)
gradientTo 确定渐变的结束,每个数字应介于0和1之间。 Offset(1,0)
barWidth 线条的宽度 2.0
isCurved 是平滑曲线还是折线 false
curveSmoothness 曲线角的平滑度半径(当isCurved为true时起作用) 0.35
preventCurveOverShooting 防止在线性序列点上绘制曲线时出现过冲,请检查此问题 false
preventCurveOvershootingThreshold 应用防止过冲算法的阈值 10.0
isStrokeCapRound 确定条形线的起点和终点是直角头还是圆头 false
belowBarData 线条下面填充,参考BarAreaData BarAreaData
aboveBarData 线条上面填充,参考BarAreaData](github.com/imaNNeoFigh…) BarAreaData
dotData 数据点,参考FlDotData FlDotData()
showingIndicators 根据提供的索引显示坐标 []
dashArray 破折号偏移量和长度的圆形数组。例如,该数组[5, 10]将导致长5像素的短划线,然后是10像素长的空白。该阵列[5, 10, 5]将导致5像素破折号,10像素破折号,5像素破折号,5像素破折号,10像素破折号等。 Null
shadow 线条阴影,参见“阴影”。 阴影()
isStepLineChart 如果设置为true,则使用绘制“折线图”样式的图表lineChartStepData false
lineChartStepData 保存用于表示步骤折线图的数据,并且仅在[isStepChart]为true时才有效。 LineChartStepData()

三 边框配置

图表四个方向的边框,有总显示开关,决定是否显示和隐藏所有,如果开启,又想隐藏个别边框,需要设置透明色。

//? 边框信息
FlBorderData _buildBorderData() {
return FlBorderData(
show: showBorderData,
border: Border(
bottom: showBottomBorder
? BorderSide(
color: Color(0xff4e4965),
width: 4,
)
: BorderSide(
color: Colors.transparent,
),
left: showLeftBorder
? BorderSide(
color: Color(0xff4e4965),
width: 2,
)
: BorderSide(
color: Colors.transparent,

总结

现在新技术层出不穷,如果每次出新的技术,我们都深入的研究的话,很容易分散精力。新的技术可能很久之后我们才会在工作中用得上,当学的新技术无法学以致用,很容易被我们遗忘,到最后真的需要使用的时候,又要从头来过(虽然上手会更快)。

我觉得身为技术人,针对新技术应该是持拥抱态度的,入了这一行你就应该知道这是一个活到老学到老的行业,所以面对新技术,不要抵触,拥抱变化就好了。

Flutter 明显是一种全新的技术,而对于这个新技术在发布之初,花一个月的时间学习它,成本确实过高。但是周末花一天时间体验一下它的开发流程,了解一下它的优缺点、能干什么或者不能干什么。这个时间,并不是我们不能接受的。

如果有时间,其实通读一遍 Flutter 的文档,是最全面的一次对 Flutter 的了解过程。但是如果我们只有 8 小时的时间,我希望能关注一些最值得关注的点。

Android学习PDF+架构视频+面试文档+源码笔记

(跨平台开发(Flutter)、java基础与原理,自定义view、NDK、架构设计、性能优化、完整商业项目开发等)

%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)

(跨平台开发(Flutter)、java基础与原理,自定义view、NDK、架构设计、性能优化、完整商业项目开发等)

[外链图片转存中…(img-yXWxQ6mL-1644916208910)]

Flutter图表库fl_chart的使用解析(二)-折线图,金九银十相关推荐

  1. 金九银十面试整理:BAT大厂最爱问的Android核心面试百题详细解析!

    Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发.这里会不断收集和更新Android基础相关的面试题 ...

  2. 闭关30天,献上【Java一线大厂高岗面试题解析合集】,冲刺金九银十!

    概述 时间不等人,2022年转眼就要过去大半了,春招在疫情中度过,不知有多少人还在惋惜... 马上又是秋招的高峰"金九银十",估计现在就已经有不少的程序猿(媛)朋友早就踏上提前批之 ...

  3. 闭关28天,奉上[Java一线大厂高岗面试题解析合集],备战金九银十

    前言 时间不等人,2022年转眼就要过去大半了,春招在疫情中度过,不知有多少人还在惋惜... 马上又是秋招的高峰"金九银十",估计现在就已经有不少的程序猿(媛)朋友早就踏上提前批之 ...

  4. 万字长文,冲刺备战金九银十,奉上[Java一线大厂高岗面试题解析合集]

    时间不等人,2022年转眼就要过去大半了,春招在疫情中度过,不知有多少人还在惋惜... 马上又是秋招的高峰"金九银十",估计现在就已经有不少的程序猿(媛)朋友早就踏上提前批之路了吧 ...

  5. 金九银十!“68道 Redis+168道 MySQL”精品面试题(带解析),你背废了吗?

    前言 谈起 Redis 和 MySQL,皆是广大 程 序 猿(媛)朋友面试跳槽必踩的两个坑.那么,关于Redis与MySQL,面试官最爱问哪些问题呢?不知道也不用慌,我已整理了这"68道 R ...

  6. 【iOS高级资深工程师面试篇】⑫、2022年,金九银十我为你准备了《iOS高级资深工程师面试知识总结》 第三方库部分 AFNetworking-SDWebImageView-ReactiveCocoa

    iOS高级资深工程师面试篇系列 - 已更新3篇 UI部分1/3 -UITableView-事件传递&视图响应 UI部分2/3 -图像显示原理-UI卡顿&掉帧 UI部分3/3 -UIVi ...

  7. 【金九银十】终一搏,BAT、TMD名企精选面试题93道(附解析)

    心态 心态很重要! 心态很重要! 心态很重要! 重要的事情说三遍,这一点我觉得是必须放到前面来讲. 找工作之前,有一点你必须清楚,就是找工作是一件看缘分的事情,不是你很牛,你就一定能进你想进的公司,都 ...

  8. 金九银十,自动化测试面试题精选【某东软件测试工程师二面】

    面试一般分为技术面和hr面,形式的话很少有群面,少部分企业可能会有一个交叉面,不过总的来说,技术面基本就是考察你的专业技术水平的,hr面的话主要是看这个人的综合素质以及家庭情况符不符合公司要求,一般来 ...

  9. 金九银十:Redis难题突破,最经典36题含详细解析

    欢迎关注专栏:Java架构技术进阶.里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦. 微信公众号:慕容千语的架构笔记.欢迎关注一起进步. 1.什么是 Redis?简述它的优缺点 ...

最新文章

  1. 在python中使用json格式存储数据
  2. dbcp2和dbcp 1.4在API层面的差异
  3. 5G UPF + MEC 的部署位置、场景与模式
  4. 【转】【Mysql学习】之Mac上用终端使用mySQL
  5. cryptogen (2)generate 生成证书再举例
  6. Python3 定向爬虫之“抓取糗事百科图片”
  7. jvm内存参数配置_“步步精心”-常用JVM配置参数
  8. AC日记——字符串P型编码 openjudge 1.7 31
  9. python解析excel公式_[python][openpyxl]读取excel中公式的结果值
  10. centos下 Tcpreplay 重放数据(流量采集重放)
  11. (转)Spring Boot 2 (九):【重磅】Spring Boot 2.1.0 权威发布
  12. vertx:Flink报错 严重: Caught unexpected Throwable IllegalAccessError: tried to access class io.netty.uti
  13. 嵌入式linux clion,跨平台IDE集成开发环境Clion教程:嵌入式开发
  14. mysql ssl编译_MySQL8开启ssl加密
  15. 学生管理系统总结收获——限制字符
  16. 善用佳软:高效能人士的软件应用之道
  17. 06_标识符的命名规则(笔试)
  18. 文件上传注入攻击 ——合天网安实验室学习笔记
  19. 1234,四个不同的数字组成多少种不同的数
  20. 携职教育:个税APP申报流程

热门文章

  1. C/C++编程:默认构造函数的建构操作
  2. 七巧板的制作(结合js 数组对象 for循环)
  3. solidworks大型装配体慢卡顿怎么办?来看专业的装配设计与仿真工作站是怎么解决的!
  4. BIOS 报警声 / 声音提示
  5. springboot基于spring的宽带管理系统以及实现毕业设计源码250910
  6. 英语基础知识:定语使用规则下篇
  7. 职场切记:没有苦劳,只有功劳!
  8. \t\t编程的精义 - 愚公移山
  9. vue element ui表格下载成xlsx工作表格
  10. 人脸识别检测项目实战