Checkbox Group
複数のチェックボックス値を controlled・uncontrolled・フォーム連携の状態としてまとめて管理します。
個別に切り替えられる複数の値を、controlled・uncontrolled・名前付きフォームフィールドとしてまとめて管理します。
主なプロパティ
| プロパティ | 説明 |
|---|---|
| 状態管理 | グループが選択を管理する場合は defaultValue、controlled 状態では value と onValueChange を組み合わせます。 |
| 利用可否 | グループの disabled はすべての子を操作不可にします。子の readOnly は値を表示したまま変更を防ぎます。 |
| フォーム | name を設定すると選択済み文字列リストを最も近い TRForm に登録します。disabled グループは除外されます。 |
| 単一選択 | 1 つだけ選択する場合は TRRadioGroup を使います。 |
各 TRCheckbox に固有の value と表示ラベルを指定してください。MergeSemantics でチェックボックスと隣接ラベルを 1 つのセマンティック単位にまとめます。
インストール
パッケージを追加し、公開ライブラリをインポートしてください。
flutter pub add tinyrack_uiimport 'package:tinyrack_ui/tinyrack_ui.dart';プレイグラウンド
使用方法
import 'package:material_ui/material_ui.dart';
import 'package:tinyrack_ui/tinyrack_ui.dart';
TRCheckboxGroup(
defaultValue: const ['metrics'],
onValueChange: setValues,
children: const [
MergeSemantics(
child: Row(
mainAxisSize: MainAxisSize.min,
spacing: TRSpacing.small,
children: [
TRCheckbox(value: 'metrics'),
TRText('Metrics', variant: TRTextVariant.bodySm),
],
),
),
MergeSemantics(
child: Row(
mainAxisSize: MainAxisSize.min,
spacing: TRSpacing.small,
children: [
TRCheckbox(value: 'alerts'),
TRText('Alerts', variant: TRTextVariant.bodySm),
],
),
),
],
)例
オプション一覧 パーマリンク
各チェックボックスに表示ラベルを付け、グループが初期選択を管理する場合は defaultValue を使います。
編集可能、読み取り専用、無効 パーマリンク
値を表示したままにする場合は個々のチェックボックスを readOnly にし、すべての子を操作不可にする場合はグループを無効にします。
1つまたは2つを選ぶ パーマリンク
最小数と最大数のルールがある場合は、値のリストを制御します。
すべて選択と一部選択 パーマリンク
制御された値のリストから別のチェックボックスを更新し、すべて選択と一部選択の状態を提供します。
名前付きフォーム値を取得 パーマリンク
グループに name を設定すると、TRFormState.save() に選択済みの文字列リストが含まれます。
API
選択と操作
| Prop | 型 / デフォルト | 用途 |
|---|---|---|
value, defaultValue | List<String>?, List<String> = const [] | 選択値を制御または初期化します。 |
onValueChange | ValueChanged<List<String>>? | 次の選択済み文字列リストを通知します。 |
children | List<Widget> | null ではない値を持つ子孫の TRCheckbox だけが選択に参加します。 |
disabled | bool = false | すべての子を無効にし、名前付きグループを TRFormValues から除外します。 |
name | String? | 選択済みリストを最も近い TRForm に登録します。 |