個人開発者が勉強がてらまとめているだけのサイトです

チェックボックス / ラジオボタン Checkbox / Radio Button

四角に✓を付けるのがチェックボックス(いくつでも選べる)、丸を塗るのがラジオボタン(1つだけ選べる)。

別名
チェックボックスラジオボタン複数選択単一選択全て選択チェックリストCheckboxRadioCheckboxListTileRadioListTileCupertinoCheckbox
動き
✓が付く丸が1つだけ塗られる親が「一部」の表示になる
作り方
標準ウィジェット Flutter に入っているものだけで作れます

本物の 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

似ているもの・一緒に見たいもの

触ってみる ↗
入力・フォーム スイッチSwitch

押すとつまみが横へ滑って、オンとオフが切り替わる。設定画面で「すぐに効く」切り替えに使う。

つまみが横へ滑る
触ってみる ↗
ボタン チップChips

小さな角丸のボタン。絞り込み・並び替えの選択、入力したタグの表示、すぐ実行できる提案などに使う。

押すと選択
触ってみる ↗
ボタン トグルボタンToggle Buttons

太字・斜体・下線のように、つながったアイコンボタンを押すたびにオンとオフが切り替わる。

押すたびオン・オフ