我只想拥有普通的单选按钮,其中只能选择组中的一个按钮。根据在线教程,我们需要将 groupvalue 变量设置为 onChanged 中 setState 方法中的值。如果我这样做,我可以选择所有按钮,我不希望这种情况发生。我希望一次只选择一个按钮(来自该组)。如果我的代码或任何其他方式有任何问题,请告诉我。
option 是标题的字符串参数 optionvalue 是该选项的值。
class Option extends StatefulWidget {
final String option;
final int optionvalue;
Option(this.option, this.optionvalue);
_OptionState createState() => _OptionState();
}
class _OptionState extends State<Option> {
int groupvalue;
@override
Widget build(BuildContext context) {
return Container(
child: Container(
child: RadioListTile(
title: Text(
widget.option,
style: TextStyle(fontSize: 20.0),
),
activeColor: Colors.black,
value: widget.optionvalue,
groupValue: groupvalue,
onChanged: (int a) {
print(a);
setState(() {
groupvalue = a;
});
},
),
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
Cop*_*oad 19
试试这个代码
int _groupValue = -1;
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
_myRadioButton(
title: "Checkbox 0",
value: 0,
onChanged: (newValue) => setState(() => _groupValue = newValue),
),
_myRadioButton(
title: "Checkbox 1",
value: 1,
onChanged: (newValue) => setState(() => _groupValue = newValue),
),
],
);
}
Widget _myRadioButton({String title, int value, Function onChanged}) {
return RadioListTile(
value: value,
groupValue: _groupValue,
onChanged: onChanged,
title: Text(title),
);
}
Run Code Online (Sandbox Code Playgroud)
输出:
| 归档时间: |
|
| 查看次数: |
14513 次 |
| 最近记录: |