Flutter Checkbox - 如何在未选中状态下设置颜色
Flutter Checkbox - how to set colour in unchecked state
在 Flutter 中,复选框看起来是透明的,处于其自然的未选中状态。我想知道在这种状态下如何设置方框的颜色。
这里有很多类似的问题,但他们都要求更改活动颜色,或刻度线的颜色。我已经尝试了所有可用的属性,但其中 none 似乎会影响未选中的状态(甚至不影响 fillColor)。我的目标是创建一个显示在非白色背景上的纯白色复选框(带圆角的正方形)。
child: Checkbox(
checkColor: Colors.red,
activeColor: Colors.white,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)),
onChanged: (value) {},
),
已对源代码进行绘制。我们可以通过用 Container
包装 Checkbox
并提供 decoration
来欺骗 UI 我们还需要更改 Checkbox
.
上的一些属性
child: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(8),
),
child: Checkbox(
value: _isChecked,
hoverColor: Colors.transparent,
fillColor: MaterialStateProperty.all<Color>(Colors.white),
checkColor: Colors.red,
activeColor: Colors.white,
shape:
RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)),
onChanged: (value) {
setState(() {
_isChecked = !_isChecked;
});
},
),
),
为了改进padding-space,我们可以使用Transform.scale
并从Container
控制大小。但是对于太小的(~12)个案例,它可能会造成一些 UI 麻烦。
Container(
width: 24,
height: 24,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(8),
),
child: Transform.scale(
scale: 1.2,
child: Checkbox(...
在 Flutter 中,复选框看起来是透明的,处于其自然的未选中状态。我想知道在这种状态下如何设置方框的颜色。
这里有很多类似的问题,但他们都要求更改活动颜色,或刻度线的颜色。我已经尝试了所有可用的属性,但其中 none 似乎会影响未选中的状态(甚至不影响 fillColor)。我的目标是创建一个显示在非白色背景上的纯白色复选框(带圆角的正方形)。
child: Checkbox(
checkColor: Colors.red,
activeColor: Colors.white,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)),
onChanged: (value) {},
),
已对源代码进行绘制。我们可以通过用 Container
包装 Checkbox
并提供 decoration
来欺骗 UI 我们还需要更改 Checkbox
.
child: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(8),
),
child: Checkbox(
value: _isChecked,
hoverColor: Colors.transparent,
fillColor: MaterialStateProperty.all<Color>(Colors.white),
checkColor: Colors.red,
activeColor: Colors.white,
shape:
RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)),
onChanged: (value) {
setState(() {
_isChecked = !_isChecked;
});
},
),
),
为了改进padding-space,我们可以使用Transform.scale
并从Container
控制大小。但是对于太小的(~12)个案例,它可能会造成一些 UI 麻烦。
Container(
width: 24,
height: 24,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(8),
),
child: Transform.scale(
scale: 1.2,
child: Checkbox(...