首页 > 解决方案 > 在颤动中激活/选中复选框后如何保持边框

问题描述

所以我现在拥有的是 这个,选中时无边框复选框

我想要实现的是这个,选中时有一个带边框的复选框

这是我拥有的复选框的代码:

Checkbox(
          value: _isChecked,
          onChanged: (bool value) {
            setState(() {
              _isChecked = value;
            });
           },
          checkColor: Colors.pinkAccent,
          activeColor: Colors.transparent,
        ),
Text("Remember me")

标签: flutterdart

解决方案


您可以将其包装在容器中并为其设置边框
如何在 Flutter 中为小部件添加边框?
然后你可以使用主题(未选择的widgetcolor :)来更改复选框的默认边框
更改复选框边框颜色在颤动中
然后根据这些问题我们可以使用两者来实现我们想要的

bool _isChecked = false;

然后我们可以定义我们的复选框并说如果 isChecked 等于 true ,如果不将其更改为白色,颜色将是粉红色调ternary if

  Container(
            decoration: BoxDecoration(
              border: Border.all(
                  color: _isChecked == true ? Colors.pinkAccent: Colors.black,
                  width: 2.3),
            ),
            width: 24,
            height: 24,
            child: Theme(
              data: ThemeData(unselectedWidgetColor: Colors.white),
              child: Checkbox(
                checkColor: Colors.pinkAccent,
                activeColor: Colors.transparent,
                value: _isChecked,
                tristate: false,
                onChanged: (bool isChecked) {
                  setState(() {
                    _isChecked = isChecked;
                  });
                },
              ),
            ),
          ),

使用上面的代码你会得到这样的东西
在此处输入图像描述

您还可以将粉红色边框更改为您想要的任何内容


推荐阅读