How to change checkbox border-color in flutter? By default, it is showing black but I want it in grey.
Asked
Active
Viewed 3.2k times
10 Answers
55
Use this:
Checkbox(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(2.0),
),
side: MaterialStateBorderSide.resolveWith(
(states) => BorderSide(width: 1.0, color: Colors.red),
),
),

chuxyz
- 567
- 5
- 2
-
Accepted answer did not work for me. This one is the only one that worked. – tudorprodan Nov 17 '22 at 15:04
-
43
CheckBox's border color comes from unselectedWidgetColor
of your ThemeData
.
Add following ThemeData
to your 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:
Theme(
child: Checkbox(
value: false,
onChanged: (_) {},
),
data: ThemeData(
primarySwatch: Colors.blue,
unselectedWidgetColor: Colors.red, // Your color
),
),

General Grievance
- 4,555
- 31
- 31
- 45

Kalpesh Kundanani
- 5,413
- 4
- 22
- 32
-
2Great! Also do we have option to change the border of checkbox when it is selected? I want it this way -> For ex : tick color is green and checkbox border color is green with checkbox background as white. – Tanmay Pandharipande Aug 07 '20 at 08:53
-
11
You can also simply set the side
property of your Checkbox:
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,
),
),

hnnngwdlch
- 2,761
- 1
- 13
- 20
10
You can use Theme
to change the unselected widget color like given below
Theme(
data: ThemeData(unselectedWidgetColor: Colors.blue),
child: Checkbox(
...
)
)

Ayush Bherwani
- 2,409
- 1
- 15
- 21
7
set color in BorderSide ⬇️
Checkbox(
value: _value,
onChanged: (_){},
// YOUR COLOR HERE
side: BorderSide(color: Colors.green)),

Tarish
- 468
- 8
- 8
4
This code will help for border color change in onChanged Function.
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!;
},
)

Akshay Njarangal
- 83
- 5
3
another dynamic way
Checkbox(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(6.0).r,
),
side: MaterialStateBorderSide.resolveWith(
(states) => BorderSide(
width: 1.0,
color: valuefirst
? context.resources.colors.primary600
: Color.fromRGBO(179, 172, 172, 1)),
),
checkColor: context.resources.colors.primary600,
activeColor: Colors.white,
value: valuefirst,
onChanged: (bool? value) {
setState(() {
valuefirst = value!;
print('valuefirst$valuefirst');
});
},
),

Niaj Mahmud
- 399
- 3
- 10
2
Simply like that:
Checkbox(
side: const BorderSide(
// set border color here
color: Colors.red,
),
value: isChecked,
onChanged: (bool? value) {},
),

NayMak
- 160
- 1
- 16
2
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,
)

Anna Muzykina
- 141
- 5
1
Checkbox(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(3),
),
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
value: true,
onChanged: (newValue) {},
/// Set your color here
fillColor: MaterialStateProperty.all(Colors.grey),
)

Dũng Phạm Tiến
- 311
- 2
- 4