Flutter:更改复选框的选中颜色

时间:2020-06-26 19:36:37

标签: flutter checkbox bottom-sheet

我正在尝试创建一个带有复选框的底部工作表enter image description here。我发现很难选中复选框并在点击后显示不同的颜色。此刻,该复选框保持为空。

我该如何解决?

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;
                            });
                          },
                        ),

2 个答案:

答案 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'),
      ),
    );
  }

通过更改checkColoractiveColor,可以对其进行修复。