Flutter 纯色矩形

在Flutter中,绘制一个纯色矩形可以通过多种方式实现,最常见的方法是使用ContainerDecoratedBoxClipRRect(带有BoxDecoration的矩形)。以下是几种不同的方法来实现纯色矩形的绘制:

方法1:使用Container

dart 复制代码
Container(
  width: 200, // 宽度
  height: 100, // 高度
  color: Colors.blue, // 颜色
)

方法2:使用DecoratedBox

dart 复制代码
DecoratedBox(
  decoration: BoxDecoration(
    color: Colors.red, // 颜色
  ),
  child: Container(
    width: 150, // 宽度
    height: 80, // 高度
  ),
)

方法3:使用ClipRRectBoxDecoration

dart 复制代码
ClipRRect(
  borderRadius: BorderRadius.circular(10), // 可选,设置圆角
  child: Container(
    width: 120, // 宽度
    height: 60, // 高度
    color: Colors.green, // 颜色
  ),
)

方法4:使用SizedBoxBoxDecoration

dart 复制代码
SizedBox(
  width: 100, // 宽度
  height: 50, // 高度
  child: DecoratedBox(
    decoration: BoxDecoration(
      color: Colors.purple, // 颜色
    ),
  ),
)

方法5:使用CustomPaintPaint(更复杂但灵活)

如果你需要更多的控制(例如,绘制渐变或自定义形状),你可以使用CustomPaint

dart 复制代码
CustomPaint(
  painter: _MyPainter(), // 自定义画家类,继承自CustomPainter
  child: Container( // 可以是其他widget,但不是必须的,因为CustomPaint可以绘制在任意大小的区域上。
    width: double.infinity, // 宽度,例如填充父容器宽度
    height: 100, // 高度
  ),
)

自定义画家类:

dart 复制代码
class _MyPainter extends CustomPainter {
  @override
  void paint(Canvas canvas, Size size) {
    final paint = Paint()..color = Colors.orange; // 设置画笔颜色等属性
    canvas.drawRect(Offset.zero & size, paint); // 绘制矩形,从原点(0,0)开始,到size大小的位置结束。
  }

  @override
  bool shouldRepaint(covariant CustomPainter oldDelegate) {
    return false; // 当画家状态不改变时返回false,以优化性能。如果需要重绘,返回true。
  }
}

以上方法可以根据你的具体需求选择使用。通常情况下,使用Container是最简单直接的方式。如果你需要更多定制(如圆角、边框等),则可以使用ClipRRect结合Container或直接使用DecoratedBox。对于更复杂的图形和自定义绘制,则可以使用CustomPaint

相关推荐
「、皓子~1 小时前
海狸IM 2.1 正式发布
flutter·微服务·golang·electron·开源软件·im·海狸im
里欧跑得慢2 小时前
AI 驱动的 UI 国际化方案自动适配:从单一语言到多语言布局的智能转换
前端·css·flutter·web
恋猫de小郭3 小时前
AI 时代,一个优化 Flutter 的重复代码工具 Deslop
android·前端·flutter
ljt27249606611 天前
Flutter笔记--envied
前端·笔记·flutter
加农炮手Jinx2 天前
Flutter for OpenHarmony 实战:flutter_animate 声明式动画让 UI 灵动如原生
flutter·ui·华为·harmonyos·鸿蒙
里欧跑得慢2 天前
Flutter 像素级还原:设计稿到代码的视觉无损转换技巧
前端·css·flutter·web
里欧跑得慢2 天前
Flutter 三方库 function_tree — 鸿蒙应用开发中的动态数学公式解析与计算神器,实现鸿蒙深度适配下的复杂函数逻辑运行时求值实战(适配鸿蒙 HarmonyOS Next ohos)
android·前端·安全·flutter·华为·harmonyos
吃西瓜的年年2 天前
vue3原理思维导图
vue.js·笔记·flutter
GitLqr3 天前
从代码复用走向生态:Flutter Dart Package 实战全指南
flutter·全栈·dart