【发布时间】:2020-04-10 17:12:56
【问题描述】:
我在 Flutter 应用程序的 UI 中添加了一个复选框,我可以看到复选框颜色或活动颜色属性,但找不到任何更改复选框边框颜色的选项,通常为黑色。
更改边框颜色的规定或调整是什么?
【问题讨论】:
-
AFAIK,
Container有边框属性。 -
试过了,但我需要根据复选框的大小调整容器,我觉得它不优雅
我在 Flutter 应用程序的 UI 中添加了一个复选框,我可以看到复选框颜色或活动颜色属性,但找不到任何更改复选框边框颜色的选项,通常为黑色。
更改边框颜色的规定或调整是什么?
【问题讨论】:
Container 有边框属性。
这里是你可以改变文本框轮廓颜色的方法
Checkbox(value: isChecked, onChanged: (val){
if(val != null) {
isChecked = val;
setState(() {
});
}
},checkColor: theme.primaryColor,
activeColor: theme.whiteColor,
hoverColor: theme.whiteColor,
side: BorderSide(
color: whiteColor, //your desire colour here
width: 1.5,
),
),
【讨论】:
Transform.scale( //For Increasing or decreasing Sizes
scale: 1.3,
child: Theme( // For Color Change,
data: ThemeData(unselectedWidgetColor: AppColors.checkBoxBorderColor),
child: Checkbox(
value: true,
shape: RoundedRectangleBorder( // Making around shape
borderRadius: BorderRadius.circular(2)),
onChanged: (isCheck) {},
activeColor: AppColors.checkBoxActiveColor,
),
),
),
【讨论】:
使用side 很简单。
前 - side: BorderSide(color: Colors.red),
【讨论】:
您可以使用 Side 属性...
边:BorderSide(颜色:颜色(0xff585858)),
【讨论】:
如果您想为您的复选框定义应用范围的主题,您可以这样做:
MaterialApp(
...
theme:ThemeData(
checkboxTheme: CheckboxThemeData(
fillColor: MaterialStateColor.resolveWith(
(states) {
if (states.contains(MaterialState.selected)) {
return Colors.purple // the color when checkbox is selected;
}
return Colors.white //the color when checkbox is unselected;
},
),
),
),
)
为您的应用定义应用范围的主题是一种很好的做法,以避免代码重复并确保一致性,它还可以提供更好的维护。 享受编码:)
【讨论】:
Checkbox(value: false, tristate: false, onChanged: () {});
↓
Theme(
data: ThemeData(unselectedWidgetColor: Colors.red),
child: Checkbox(value: false, tristate: false, onChanged: (bool value) {}));
No onChanged, then the border will be grey(disabled).
【讨论】:
onChanged参数,否则使用非活动颜色,ThemeData不会带来任何变化
你可以这样做:
Container(
decoration: const BoxDecoration(
border: Border(
top: BorderSide(width: 3.0, color: Colors.red),
left: BorderSide(width: 3.0, color: Colors.red),
right: BorderSide(width: 3.0, color: Colors.red),
bottom: BorderSide(width: 3.0, color: Colors.red),
),
),
child: Checkbox(value: false, onChanged: null),
width: 20,
height: 20),
BoxDecoration 类包含 border 属性,可让您自定义边框边,然后您可以添加 Checkbox 并将容器的宽度和高度与复选框匹配
【讨论】: