チェックボックス / ラジオボタン Checkbox / Radio Button
四角に✓を付けるのがチェックボックス(いくつでも選べる)、丸を塗るのがラジオボタン(1つだけ選べる)。
本物の Flutter ウィジェットが動きます(初回は数秒かかります)
どんなもの?
チェックボックスは「いくつでも」、ラジオボタンは「1つだけ」選ぶときに使います。
1行まるごと押せるようにするには CheckboxListTile / RadioListTile を使います。
「すべて選択」の親は tristate: true にして、一部だけ選ばれているときは value: null で「−」を出します。
ラジオボタンは Flutter 3.32 から RadioGroup で包む書き方になりました。
groupValue と onChanged は RadioGroup に1回だけ書き、各 RadioListTile には value だけを渡します。
iOS 風には CupertinoCheckbox・CupertinoRadio があります。
こんなときに
- チェックボックス:同意の確認、複数選べる条件
- ラジオボタン:2〜5個から1つ(選択肢を全部見せたいとき)
避けたい場面
- 選択肢が多いラジオボタン(ドロップダウンにする)
- 押した瞬間に効く設定(スイッチにする)
最小コード
// 親(すべて選択)は3状態
CheckboxListTile(
tristate: true,
value: all ? true : (none ? false : null),
title: const Text('すべて'),
onChanged: (_) => setAll(!all),
)
// ラジオボタンは RadioGroup で包む(Flutter 3.32+)
RadioGroup<String>(
groupValue: ship,
onChanged: (v) => setState(() => ship = v!),
child: const Column(children: [
RadioListTile(value: 'normal', title: Text('通常配送')),
RadioListTile(value: 'express', title: Text('お急ぎ便')),
]),
)使うウィジェット
Checkbox(tristate)CheckboxListTileRadioGroupRadioListTileCupertinoCheckboxCupertinoRadio