首页 > 解决方案 > 单选按钮从另一个类更改值

问题描述

我有一个类,我想创建 6 个一次性选择单选按钮,所以我创建了一个单选按钮单独的小部件,我如何调用这个小部件并更改单选按钮的值。这是我所做的

这是我想从另一个类调用 6 次的分离小部件:

  class ChooseTime extends StatefulWidget {
      final int value;
      final int selection;
      final int num;
      final String time;
      final Function selectTime;
      ChooseTime(
          {this.selection, this.value, this.num, this.time, this.selectTime});
      @override
      _ChooseTimeState createState() => _ChooseTimeState();
    }

 Row(
            children: <Widget>[
              Radio(
                focusColor: Colors.white,
                activeColor: Colors.white,
                groupValue: _selection,
                onChanged: widget.selectTime,
                value: widget.value,
              ),
              Text(
                widget.time,
                style: TextStyle(
                  fontWeight: FontWeight.bold,
                  color: _selection == widget.num
                      ? Colors.white
                      : Colors.deepOrangeAccent,
                ),
              ),
            ],
          ),

这是我在上面调用小部件的类:

  selectTime(int timeSelected) {
    setState(() {
      _selection = timeSelected;
    });
  }


          Row(
                    mainAxisAlignment: MainAxisAlignment.spaceAround,
                    children: [
                      ChooseTime(
                        selection: 1,
                        value: 1,
                        num: 1,
                        time: "09:00-11:00",
                        selectTime: selectTime,
                      ),
                      ChooseTime(
                        selection: 2,
                        value: 2,
                        num: 2,
                        time: "11:00-14:00",
                        selectTime: selectTime,
                      ),
                    ],
                  ),

我已经尝试了上面的代码,但是当我按下按钮时它们没有改变。

标签: flutterradio-button

解决方案


使用 Provider , bloc Pattern 来管理你的应用状态


推荐阅读