スイッチ Switch
押すとつまみが横へ滑って、オンとオフが切り替わる。設定画面で「すぐに効く」切り替えに使う。
本物の Flutter ウィジェットが動きます(初回は数秒かかります)
どんなもの?
Switch に value と onChanged を渡すだけで使えます。押した瞬間に設定が効くもの(通知・ダークモードなど)に向きます。
thumbIcon でつまみの中にアイコン(✓ や ×)を出すと、色が見分けにくい人にもオンオフが伝わります。
設定画面の1行は SwitchListTile にすると、文字を含めた行全体が押せるようになります。
iOS 風にしたいときは CupertinoSwitch、OS に合わせたいときは Switch.adaptive です。
「保存」ボタンを押すまで効かない設定には、スイッチではなくチェックボックスが向きます。
こんなときに
- 押した瞬間に効く、オンとオフの2択の設定
避けたい場面
- 「保存」を押してから反映される項目(チェックボックスにする)
- 2択でも、どちらがオンか分かりにくいもの(「昇順 / 降順」はセグメントボタンにする)
最小コード
Switch(
value: wifi,
thumbIcon: WidgetStateProperty.resolveWith((states) =>
states.contains(WidgetState.selected)
? const Icon(Icons.check)
: const Icon(Icons.close)),
onChanged: (v) => setState(() => wifi = v),
)
// 行全体が押せる
SwitchListTile(
title: const Text('通知'),
value: notify,
onChanged: (v) => setState(() => notify = v),
)
// iOS 風
CupertinoSwitch(value: dark, onChanged: (v) => setState(() => dark = v))使うウィジェット
SwitchSwitch.adaptiveSwitchListTileCupertinoSwitch
パッケージ: animated_toggle_switch ↗