【绘制 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 也没有问题。

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

目录
相关文章
|
Android开发
解决圆形进度条ProgressBar的几个问题
Android自带的Progressbar默认就是圆形的,可以通过设置style属性 style="?android:attr/progressBarStyleHorizontal" 复制代码 这样就能变成条状进度条,如下: <ProgressBar android:layout_width="match_parent" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal"/>
1288 0
|
5月前
QT设置widget背景图片
该内容介绍如何在Qt中为控件添加背景图片。主要方法包括:1) 在样式表中使用`border-image`属性指定控件及其背景图片;2) 使用调色板`QPalette`设置图片,但可能导致窗口显示不下;3) 在`paintEvent`中绘制图片,适合自定义绘图但不适用于子窗口;4) 通过覆盖一个大小与窗口相同的`QLabel`来设置背景图片,可实现动态背景。推荐使用样式表设置背景,简单高效且适合子窗口。
310 3
|
7月前
|
XML API Android开发
Android 自定义View 之 圆环进度条
Android 自定义View 之 圆环进度条
125 0
|
Android开发
Android 通过Vector Drawable绘制心形
Android 通过Vector Drawable绘制心形
89 0
|
Android开发 容器
android RelativeLayout 控件绕中心点布局
android RelativeLayout 控件绕中心点布局
162 0
android RelativeLayout 控件绕中心点布局
|
前端开发 容器
【布局 widget】OverflowBox 与 SizedOverflowBox
【布局 widget】OverflowBox 与 SizedOverflowBox
142 0
【布局 widget】OverflowBox 与 SizedOverflowBox
【布局 widget】ConstrainedBox 与 UnconstrainedBox
【布局 widget】ConstrainedBox 与 UnconstrainedBox
140 0
【布局 widget】ConstrainedBox 与 UnconstrainedBox
|
Dart 前端开发
【绘制 widget】Flutter Transform
【绘制 widget】Flutter Transform
194 0
【绘制 widget】Flutter Transform
【绘制 widget】Flutter DecratedBox
【绘制 widget】Flutter DecratedBox
141 0
【绘制 widget】Flutter DecratedBox