如何在 flutter 中创建双复选框

how to create dual checkbox in flutter

我想创建两个并排的复选框,当其中一个选中时,另一个未选中,但我不知道如何在颤振中做到这一点,所以如果有人能帮助我,我会很棒。 这是我的代码:

  bool isMan = false;
  bool isWoman = false;

  Padding(
                    padding: EdgeInsets.only(right: 10),
                    child: Text(
                      "Man:",
                      style: TextStyle(color: Colors.white, fontSize: 20),
                    ),
                  ),
                  Theme(
                    data: ThemeData(unselectedWidgetColor: Colors.white),
                    child: Checkbox(
                      value: isMan,
                      checkColor: Color(0xfff44336),
                      activeColor: Colors.white,
                      onChanged: (value) {
                        setState(
                          () {
                            isMan = value!;
                          },
                        );
                      },
                    ),
                  ),
                  Text(
                    "Woman:",
                    style: TextStyle(color: Colors.white, fontSize: 20),
                  ),
                  Theme(
                    data: ThemeData(unselectedWidgetColor: Colors.white),
                    child: Checkbox(
                      value: isWoman,
                      checkColor: Color(0xfff44336),
                      activeColor: Colors.white,
                      onChanged: (value) {
                        setState(
                          () {
                            isWoman = value!;
                          },
                        );
                      },
                    ),
                  ),

当复选框为 un/checked - 更改其他复选框值

  bool isMan = false;
  bool isWoman = false;

  @override
  Widget build(BuildContext context) {
    return Row(children: [
      Text("Man:"),
      Checkbox(
          value: isMan,
          onChanged: (value) {
            setState(() {
              isMan = value!;
              isWoman = !value; # or set it to false
            });
          }),
      Text("Woman:"),
      Checkbox(
          value: isWoman,
          onChanged: (value) {
            setState(() {
              isWoman = value!;
              isMan = !value;  # or set it to false
            });
          })
    ]);
  }

这是解决方案。

bool isMan = false; 
bool isWoman = false; 

Center(
      child: Row(
        children: [
          Padding(
            padding: EdgeInsets.only(right: 10),
            child: Text(
              "Man:",
              style: TextStyle(color: Colors.white, fontSize: 20),
            ),
          ),
          Theme(
            data: ThemeData(unselectedWidgetColor: Colors.white),
            child: Checkbox(
              value: isMan,
              checkColor: Color(0xfff44336),
              activeColor: Colors.white,
              onChanged: (value) {
                setState(
                  () {
                    isMan = value!;
                    isWoman = false;
                  },
                );
              },
            ),
          ),
          Text(
            "Woman:",
            style: TextStyle(color: Colors.white, fontSize: 20),
          ),
          Theme(
            data: ThemeData(unselectedWidgetColor: Colors.white),
            child: Checkbox(
              value: isWoman,
              checkColor: Color(0xfff44336),
              activeColor: Colors.white,
              onChanged: (value) {
                setState(
                  () {
                    isWoman = value!;
                    isMan = false;
                  },
                );
              },
            ),
          ),
        ],
      ),
    )
 bool isMan = false; 
bool isWoman = false; 

Center(
      child: Row(
        children: [
          Padding(
            padding: EdgeInsets.only(right: 10),
            child: Text(
              "Man:",
              style: TextStyle(color: Colors.white, fontSize: 20),
            ),
          ),
          Theme(
            data: ThemeData(unselectedWidgetColor: Colors.white),
            child: Checkbox(
              value: isMan,
              checkColor: Color(0xfff44336),
              activeColor: Colors.white,
              onChanged: (value) {
                setState(
                  () {
                    isMan = value!;
                    isWoman = false;
                  },
                );
              },
            ),
          ),
          Text(
            "Woman:",
            style: TextStyle(color: Colors.white, fontSize: 20),
          ),
          Theme(
            data: ThemeData(unselectedWidgetColor: Colors.white),
            child: Checkbox(
              value: isWoman,
              checkColor: Color(0xfff44336),
              activeColor: Colors.white,
              onChanged: (value) {
                setState(
                  () {
                    isWoman = value!;
                    isMan = false;
                  },
                );
              },
            ),
          ),
        ],
      ),
    )`