900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 关注 Flutter 自定义 Widget 之饼形图实战

关注 Flutter 自定义 Widget 之饼形图实战

时间:2021-02-06 18:17:04

相关推荐

关注 Flutter 自定义 Widget 之饼形图实战

本文主要讲述了 Flutter 如何实现自定义 Widget 以及自定义饼形图实战,如有不当之处敬请指正。

阅读本文大约需要6分钟。

一、背景

Flutter 官方目前已经提供很多的小部件,可以直接使用,有 Material 风格的小部件,也有 iOS 风格的小部件,还有一些布局相关的小部件。在正常开发中能满足绝大多的页面场景,但是仍有部分小部件是官方没有提供的。虽然官方没有提供完整的小部件,但是官方提供了让我们自定义小部件的功能。

二、介绍

在 Flutter 中自定义 Widget 常用的有二种方式:通过组合其他 Widget 、自绘。

组合其他 Widget

这种方式是通过拼装其他基础的 Widget 来组合成一个新的 Widget ,比如使用 Icon 和 Text 放在 Row 来组合成一个带图标功能的 Text。

在平时的 Flutter 中经常会使用这种方法来实现不同的布局。

自绘

如果遇到无法通过组合完成的页面UI,或者一些独特的UI,比如圆形进度条,统计图表等。这个时候最好的办法就是通过自定义 Widget 来绘画出我们所需要的样子,在 Flutter 中提供了 CustomPainter 和 Canvas 来供我们绘制。

三、方法

对于复杂或者不规则的 UI ,我们可能无法使用组合的方式完成。比如:需要一个三角形,五边形,一个折线图,一个饼形图,数字进度条等。有时候我们可以直接让 UI 设计师直接提供图片去展示,但是有些数据是动态的或者 UI 是需要和用户交互的,这个时候使用图片可能就达不到我们所需要的效果了,就需要我们自己去实现绘制 UI 了。

几乎所有的 UI 系统都会提供一个自绘 UI 的接口,这个接口通常会提供一个 2D 的画布 Canvas,在 Canvas 内部封装了一些基础的绘制 API,我们只需要调用相关的绘制 API 就可以绘制各种自定的图形了。

在 Flitter 中,它为我们提供了一个 CustomPainter Widget,我们可以结合画笔 CustomPainter 来实现自定义 Widget。

继承 CustomPainter 需要实现这个类的两个关键方法:paintshouldRepaint。在 paint 方法决定绘制什么,使用传递过来的 canvas 和 size 完成绘制,shouldRepaint 决定否需要重绘的,返回 false 代表这个 Widget 绘制完成后不需要重新绘制。

四、绘制

想要完成绘制仅靠 canvas 是无法完成绘制的,还需要一个画笔 paint 。

构建 paint

Paint _paint = Paint()..color = Colors.red..isAntiAlias = true..style = PaintingStyle.fill..strokeWidth = 12.0;

color: 设置画笔颜色;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。