我正在尝试创建一个带有复选框的底部工作表。我发现很难选中复选框并在点击后显示不同的颜色。此刻,该复选框保持为空。
我该如何解决?
bool isChecked = false;
...
Column(
children: <Widget>[
Padding(
padding: const EdgeInsets.fromLTRB(50, 10, 10, 10),
child: Row(
children: <Widget>[
Expanded(child: Text('Classes Booked')),
Checkbox(
checkColor: isChecked
? Colors.grey
: Theme.of(context).colorScheme.aqua,
value: isChecked,
onChanged: (bool value) {
setState(() {
value = true;
});
},
),
答案 0 :(得分:4)
我认为您应该执行以下操作:
onChanged: (bool value) {
setState(() {
isChecked = true;
});
或更有效的东西:
onChanged: (bool value) {
setState(() {
isChecked = !isChecked;
});
答案 1 :(得分:0)
有一个名为CheckboxListTile
的预制小部件,它负责布局。
class AppHomePage extends StatefulWidget {
@override
_AppHomePageState createState() => _AppHomePageState();
}
class _AppHomePageState extends State<AppHomePage> {
bool isChecked = true;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: CheckboxListTile(
checkColor: Colors.red, // for the actual check mark
activeColor: Colors.green, // for the surrounding box
value: isChecked,
onChanged: (v) => setState(() => isChecked = v),
title: Text('foo'),
subtitle: Text('bar'),
),
);
}
通过更改checkColor
和activeColor
,可以对其进行修复。