body method
Defines the actual body code. path
is passed relative to lib
, baseName
is the filename, and className
is the filename converted to Pascal case.
実際の本体コードを定義します。path
にlib
からの相対パス、baseName
にファイル名が渡され、className
にファイル名をパスカルケースに変換した値が渡されます。
Implementation
@override
String body(String baseName, String className) {
return """
`FormCheckbox`は下記のように利用する。
## 概要
$excerpt
## 基本的な利用方法
```dart
FormCheckbox(
form: formController,
initialValue: formController.value.checked,
onSaved: (value) => formController.value.copyWith(checked: value),
);
```
## ラベル付きチェックボックスの利用方法
```dart
FormCheckbox(
form: formController,
initialValue: formController.value.checked,
label: "利用規約に同意する",
onSaved: (value) => formController.value.copyWith(checked: value),
);
```
## バリデーション付きの利用方法
```dart
FormCheckbox(
form: formController,
initialValue: formController.value.checked,
label: "利用規約に同意する",
validator: (value) {
if (value != true) {
return "利用規約への同意が必要です";
}
return null;
},
onSaved: (value) => formController.value.copyWith(checked: value),
);
```
## カスタムデザインの適用
```dart
FormCheckbox(
form: formController,
initialValue: formController.value.checked,
style: const FormStyle(
padding: EdgeInsets.all(8.0),
backgroundColor: Colors.grey[200],
activeColor: Colors.blue,
checkColor: Colors.white,
),
onSaved: (value) => formController.value.copyWith(checked: value),
);
```
## パラメータ
### 必須パラメータ
- `form`: フォームコントローラー。フォームの状態管理を行います。
- `onSaved`: 保存時のコールバック。チェック状態の保存処理を定義します。
### オプションパラメータ
- `initialValue`: 初期値。フォーム表示時の初期チェック状態を設定します。
- `label`: ラベルテキスト。チェックボックスの横に表示するテキストを設定します。
- `validator`: バリデーション関数。チェック状態の検証ルールを定義します。
- `style`: フォームのスタイル。`FormStyle`を使用してデザインをカスタマイズできます。
- `enabled`: 入力可否。`false`の場合、チェックボックスが無効化されます。
- `tristate`: 3状態の許可。`true`の場合、null値を含む3状態が許可されます。
## 注意点
- `FormController`と組み合わせて使用することで、チェックボックスの状態を管理できます。
- `FormStyle`を使用することで、共通のデザインを適用できます。
- バリデーションは`validator`パラメータを使用して定義します。
- ラベルテキストは`label`パラメータを使用して設定できます。
- `enabled`パラメータを使用することで、チェックボックスの有効/無効を制御できます。
- `tristate`を使用することで、未定義状態(null)を含む3状態のチェックボックスを実装できます。
## ベストプラクティス
1. フォームの状態管理には必ず`FormController`を使用する
2. ユーザーにとって分かりやすいラベルテキストを設定する
3. 必須チェックの場合は適切なバリデーションメッセージを設定する
4. アプリ全体で統一したデザインを適用するために`FormStyle`を使用する
5. チェックボックスの状態変更時の処理は`onChanged`で実装する
## 利用シーン
- 利用規約への同意
- 設定画面でのオプション選択
- フィルター条件の選択
- 複数選択可能なリストの項目選択
""";
}