【绘制 Widget】ColoredBox

简介: 【绘制 Widget】ColoredBox

image.png


家人也中招了,这几天得照顾他们,存货不多,可能哪天就断更了。今天聊个轻松的话题,ColoredBox widget。

ColoredBox 介绍

ColoredBox 先绘制颜色,然后再绘制 child。

看到源码会更清晰一些。

void paint(PaintingContext context, Offset offset) {
    if (size > Size.zero) {
      context.canvas.drawRect(offset & size, Paint()..color = color);
    }
    if (child != null) {
      context.paintChild(child!, offset);
    }
  }
复制代码

在布局方面,如果有 ColoredBox 有 child,ColoredBox 和child 一样大,如果没有 child, 取约束的最小值。

在使用 ColoredBox 之前,先简单说下 Color。

如何表示颜色

Color(0x00FFFFFF) 透明白色,00 表示完全透明,可以省略掉  Color(0xFFFFFF)Color(0xFFFFFFFF) 不透明白色,FF 表示完全不透明,不可以省略掉 。

开始的两位介于 00-FF 之间就表示半透明。如果你是前端开发,可能不大习惯于 0xFFFFFFFF 这样格式,幸运的是我们还可以这样写 Color.fromRGBO(100, 200, 200, 0.6),最后一位代表透明,这就和 css 中的格式一样了。

知道如何写颜色值,再看 ColoredBox 就非常轻松了。

使用 ColoredBox

首先就是 Container Widget,他的背景色就是用的 ColoredBox。

if (color != null) {
      current = ColoredBox(color: color!, child: current);
}
复制代码

我们大多时候都直接用 Container了。但是如果只是增加一个背景色,还是用 ColoredBox 为好。比如我们给 Row 加一个背景色。

ColoredBox(
      color: Colors.greenAccent,
      child: Row(children: [Text('IAM17'),SizedBox(width: 10,),Text('天天更新')],)
);
复制代码


用 ColoredBox 个人认为可读性会好些。不过如果你喜欢用 Container 也没有问题。

今天就聊到这了,谢谢观看!

目录
相关文章
|
6月前
QT设置widget背景图片
该内容介绍如何在Qt中为控件添加背景图片。主要方法包括:1) 在样式表中使用`border-image`属性指定控件及其背景图片;2) 使用调色板`QPalette`设置图片,但可能导致窗口显示不下;3) 在`paintEvent`中绘制图片,适合自定义绘图但不适用于子窗口;4) 通过覆盖一个大小与窗口相同的`QLabel`来设置背景图片,可实现动态背景。推荐使用样式表设置背景,简单高效且适合子窗口。
347 3
|
8月前
|
存储 数据可视化 测试技术
[Qt5] QGraphics图形视图框架概述(Item、Scene和View)
[Qt5] QGraphics图形视图框架概述(Item、Scene和View)
1417 0
|
Android开发
Android 通过Vector Drawable绘制心形
Android 通过Vector Drawable绘制心形
94 0
|
前端开发 Android开发
Android 中使用Canvas绘制文字和矩形,将结果呈现在Bitmap上
Android 中使用Canvas绘制文字和矩形,将结果呈现在Bitmap上
199 0
|
前端开发 Python
Tkinter的Canvas控件
Canvas控件是Tkinter界面设计的一个画图工具,也可以用它导入外部图案到界面中
117 0
Tkinter的Canvas控件
【布局 widget】ConstrainedBox 与 UnconstrainedBox
【布局 widget】ConstrainedBox 与 UnconstrainedBox
146 0
【布局 widget】ConstrainedBox 与 UnconstrainedBox
|
前端开发 容器
【布局 widget】OverflowBox 与 SizedOverflowBox
【布局 widget】OverflowBox 与 SizedOverflowBox
147 0
【布局 widget】OverflowBox 与 SizedOverflowBox
|
Dart 前端开发
【绘制 widget】Flutter Transform
【绘制 widget】Flutter Transform
204 0
【绘制 widget】Flutter Transform
【绘制 widget】Flutter FractionalTranslation
【绘制 widget】Flutter FractionalTranslation
179 0
【绘制 widget】Flutter FractionalTranslation
【绘制 widget】Flutter DecratedBox
【绘制 widget】Flutter DecratedBox
146 0
【绘制 widget】Flutter DecratedBox