最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Flutter 的自定义 UI 系列(一) - 掘金

    正文概述 掘金(码农王真实)   2021-10-14   703

    前言

    前端的 UI 系统都会提供一个自绘 UI 的接口,在这个接口中通常会提供一个画布 Canvas,这个 Canvas 内封装了一些基本的 API,开发者可以通过 Canvas 绘制各种自定义图形。在Flutter中,提供了一个 CustomPaint 组件,它可以结合画笔 CustomPainter 来实现自定义图形绘制.

    自定义 UI 的效果

    通过 Canvas ,我们可以绘制各种特殊的UI效果,

    • 各种图表
    Flutter 的自定义 UI 系列(一) - 掘金
    • 动画
    Flutter 的自定义 UI 系列(一) - 掘金 Flutter 的自定义 UI 系列(一) - 掘金 Flutter 的自定义 UI 系列(一) - 掘金
    • 不规则 UI
    Flutter 的自定义 UI 系列(一) - 掘金 Flutter 的自定义 UI 系列(一) - 掘金 Flutter 的自定义 UI 系列(一) - 掘金
    • 功能类 UI
    Flutter 的自定义 UI 系列(一) - 掘金

    CustomPaint 的基本使用和效果

    • 继承 CustomPainter 并重写 paint 和 shouldRepaint 两个方法
    class _MyCustomPainter extends CustomPainter {
      @override
      void paint(Canvas canvas, Size size) {
        canvas.drawRect(Rect.fromLTWH(0, 0, size.width, size.height), Paint());
      }
    
      @override
      bool shouldRepaint(covariant CustomPainter oldDelegate) {
        return this != oldDelegate;
      }
    }
    
    • 在组件中使用
    Container(
      child: CustomPaint(
        painter: _MyCustomPainter(),
      ),
      width: 100,
      height: 100,
    )
    
    • 效果如下,一个最基本的自定义UI,绘制了一个黑色的矩形
    Flutter 的自定义 UI 系列(一) - 掘金

    CustomPaint 属性

    CustomPaint({
      Key? key,
      this.painter,
      this.foregroundPainter,
      this.size = Size.zero,
      this.isComplex = false,
      this.willChange = false,
      Widget? child,
    }
    
    • painter: 背景画笔,会显示在子节点后面;
    • foregroundPainter: 前景画笔,会显示在子节点前面
    • size:当child为null时,代表默认绘制区域大小,如果有child则忽略此参数,画布尺寸则为child尺寸。如果有child但是想指定画布为特定大小,可以使用SizeBox包裹CustomPaint实现。
    • isComplex:是否复杂的绘制,如果是,Flutter会应用一些缓存策略来减少重复渲染的开销。
    • willChange:和isComplex配合使用,当启用缓存时,该属性代表在下一帧中绘制是否会改变。



    起源地下载网 » Flutter 的自定义 UI 系列(一) - 掘金

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元