[英]How to change checkbox border-color in flutter? By default, it is showing black but I want it in grey
How to change checkbox border-color in flutter?如何更改 flutter 中的复选框边框颜色? By default, it is showing black but I want it in grey.
默认情况下,它显示为黑色,但我希望它为灰色。
CheckBox's border color comes from unselectedWidgetColor
of your ThemeData
. CheckBox 的边框颜色来自
ThemeData
的unselectedWidgetColor
。
Add following ThemeData
to your MaterialApp
将以下
ThemeData
添加到您的MaterialApp
MaterialApp(
title: 'Flutter Demo',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
unselectedWidgetColor: Colors.red, // <-- your color
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
If you don't want to add color to the MaterialApp
's ThemeData
then you can wrap your CheckBox
widget with Theme
widget, following is the code for your reference:如果您不想为
MaterialApp
的ThemeData
添加颜色,则可以使用Theme
小部件包装CheckBox
小部件,以下是供您参考的代码:
Theme(
child: Checkbox(
value: false,
onChanged: (_) {},
),
data: ThemeData(
primarySwatch: Colors.blue,
unselectedWidgetColor: Colors.red, // Your color
),
),
Use this:用这个:
Checkbox(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(2.0),
),
side: MaterialStateBorderSide.resolveWith(
(states) => BorderSide(width: 1.0, color: Colors.red),
),
),
You can use Theme
to change the unselected widget color like given below您可以使用
Theme
更改未选择的小部件颜色,如下所示
Theme(
data: ThemeData(unselectedWidgetColor: Colors.blue),
child: Checkbox(
...
)
)
You can also simply set the side
property of your Checkbox:您也可以简单地设置 Checkbox 的
side
属性:
Checkbox(
value: true,
onChanged: (_) {},
// Background color of your checkbox if selected
activeColor: Colors.deepOrange,
// Color of your check mark
checkColor: Colors.black,
shape: hasCircleShape
// diplay checkbox with circle shape
? CircleBorder()
// or make the border slightly rounded
: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(5),
),
side: BorderSide(
// ======> CHANGE THE BORDER COLOR HERE <======
color: Colors.grey,
// Give your checkbox border a custom width
width: 1.5,
),
),
This code will help for border color change in onChanged Function.此代码将有助于 onChanged 函数中的边框颜色更改。
Checkbox(
fillColor: MaterialStateProperty.all(Colors.transparent),
side: MaterialStateBorderSide.resolveWith((states) {
if(states.contains(MaterialState.pressed)){
return BorderSide(color: loginfontcolor);
}
else{
return BorderSide(color: loginfontcolor);
}
}),
checkColor: loginfontcolor,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)),
value: snapshot.tapval, onChanged: (val){
snapshot.changval= val!;
},
)
Checkbox(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(3),
),
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
value: true,
onChanged: (newValue) {},
/// Set your color here
fillColor: MaterialStateProperty.all(Colors.grey),
)
Simply like that:就像这样:
Checkbox(
side: const BorderSide(
// set border color here
color: Colors.red,
),
value: isChecked,
onChanged: (bool? value) {},
),
set color in BorderSide ⬇️在 BorderSide 中设置颜色⬇️
Checkbox(
value: value,
onChanged: (){},
// YOUR COLOR HERE
side: BorderSide(color: Colors.green)),
Checkbox(
fillColor: MaterialStateProperty.all(consts.darkWhiteColor),
side: MaterialStateBorderSide.resolveWith((states) {
if(states.contains(MaterialState.selected)){
return const BorderSide(color: consts.navyColor);
} else {
return const BorderSide(color: consts.greyColor);
}
}),
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(3.0))),
value: checkValue.value,
onChanged: widget.isDisabled
? null
: (value) {
checkValue.value = value ?? false;
widget.onChanged!(value ?? false);
},
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
checkColor: consts.navyColor,
activeColor: consts.darkWhiteColor,
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.