Switch
Switch Widgetはtrue
またはfalse
のBoolean型(真偽値)をユーザーから取得する場合に有効です。
ここではFlutterから提供されているSwitch Widgetの使い方と応用例を解説します。
- Switch
Switch
は一般的なSwitchボタンを作成したい場合に有効です。onChanged
でチェックされたどうかを取得することができます。
また、onChanged
の値をNullに設定すると、ボタンを非活性にすることができます。
bool isChecked = true;Widget build(BuildContext context) {return Switch(value: isChecked,onChanged: (value) {setState(() {isChecked = value;});})}
- SwitchListTile
SwitchListTile
はラベル付きのSwitchを作成したい場合に有効です。title
もしくはsubtitle
の値を変更し、Switchの説明をつけることができます。
また、secondary
を使用することで、ラベルの横にアイコンなどの自由なWidgetを表示することができます。
SwitchListTile(title: const Text("Notification"),subtitle: const Text("Allow notifications"),secondary: const SizedBox(width: 40,height: 80,child: Icon(Icons.notifications_none_rounded),),value: isChecked,onChanged: (value) {setState(() {isChecked = value;});},),
activeTrackColor
: value=true の時の背景の色inactiveTrackColor
: value=false の時の背景の色
などの値を変更することで、Switch Widgetでは細かく色を指定することができます。
Switch(activeTrackColor: Colors.blue[800],inactiveTrackColor: Colors.blue[200],value: isChecked,onChanged: (value) {setState(() {isChecked = value;});}),
thumbIcon
を使用することで、ボタン内のアイコンを指定することができます。
ボタンの状態によって変更できるため、自由度が高くアイコンを設定できます。
Switch(value: isChecked,onChanged: (value) {setState(() {isChecked = value;});},thumbIcon: MaterialStateProperty.resolveWith((states) {if (states.contains(MaterialState.selected)) {return const Icon(Icons.check);}return const Icon(Icons.close);}),)
さらに詳しく知りたい場合は、以下の公式ドキュメントから参照してください。