首页 > 解决方案 > 始终保持选中至少一个复选框

问题描述

我有三个Checkbox小部件,我希望始终选择其中一个。如何使用Checkbox小部件在 Flutter 中实现它?

我尝试过使用GroupedButtons插件,但即使它们有水平选项,我也无法将文本放在checkbox行之后,所以我想使用Checkbox小部件。

Container(
                alignment: Alignment.center,
                  child: Row(
                   mainAxisSize: MainAxisSize.min,
                    children: <Widget>[
                      Checkbox(
                        activeColor: Colors.green,
                          value: arbi,
                          onChanged:(bool changed){
                        setState(() {
                          arbi = changed;
                        });
                          }
                      ),
                      Text("arbi"),
                      Checkbox(value: banglauccharon,
                          activeColor: Colors.green,
                          onChanged:(bool changed){
                            setState(() {
                              banglauccharon = changed;
                            });
                          }
                      ),
                      Text("bangla"),
                      Theme(
                        data: ThemeData(unselectedWidgetColor: Colors.white),
                        child: Checkbox(value: bagnlameann,
                            activeColor: Colors.green,
                            onChanged:(bool changed){
                              setState(() {
                                bagnlameann = changed;
                              });
                            }
                        ),
                      ),
                      Text("bangla",style: ,)
                    ],
                  )
              ),

标签: flutterdartflutter-layout

解决方案


尝试这样的事情:

在这种情况下,我做了这样一个arbi复选框,如果没有,就会被选中。

         Container(
            alignment: Alignment.center,
              child: Row(
               mainAxisSize: MainAxisSize.min,
                children: <Widget>[
                  Checkbox(
                    activeColor: Colors.green,
                      value: arbi || banglauccharon || bagnlameann ? arbi : true,
                      onChanged:(bool changed){
                    setState(() {
                      arbi = changed;
                    });
                      }
                  ),
                  Text("arbi"),
                  Checkbox(value: banglauccharon,
                      activeColor: Colors.green,
                      onChanged:(bool changed){
                        setState(() {
                          banglauccharon = changed;
                        });
                      }
                  ),
                  Text("bangla"),
                  Theme(
                    data: ThemeData(unselectedWidgetColor: Colors.white),
                    child: Checkbox(value: bagnlameann,
                        activeColor: Colors.green,
                        onChanged:(bool changed){
                          setState(() {
                            bagnlameann = changed;
                          });
                        }
                    ),
                  ),
                  Text("bangla")
                ],
              )
          );

推荐阅读