Autocomplete
型付きの静的候補または非同期候補から自由入力を補完します。
型付きの静的候補または非同期候補から自由入力を補完します。
主なプロパティ
| プロパティ | 説明 |
|---|---|
| 値 | 検索文字列は自由入力のままです。候補を選択すると、型付きの値も controller に保存されます。 |
| 候補 | 静的な items を渡すか、optionsBuilder で候補を非同期に読み込みます。古いリクエストの遅い応答は破棄されます。 |
| 操作 | ポインターを重ねても入力フォーカスを保ちます。矢印キーでハイライトを移動し、Enter で選択、Escape で閉じ、Tab では選択せず次へ移動します。 |
| レイヤーサイズ | layerSize で候補レイヤー全体のサイズを指定します。デフォルトではフィールドの幅に合わせ、高さはコンテンツに応じて TRMeasurements.measureXl まで広がります。 |
インストール
パッケージを追加し、公開ライブラリをインポートしてください。
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';
TRAutocomplete<String>(
label: 'Region',
placeholder: 'Search regions',
items: const [
TRAutocompleteItem(value: 'seoul', label: 'Seoul'),
TRAutocompleteItem(value: 'tokyo', label: 'Tokyo'),
],
onSelected: (region) => selectedRegion = region,
)例
補完モード パーマリンク
候補リスト、インライン補完、両方の動作、manual モードから選べます。manual モードでは、文字を入力するまで空の検索結果を表示しません。
非同期の候補 パーマリンク
optionsBuilder から Future を返してリモート候補を読み込みます。リクエストの完了順が前後しても、最新の検索文字列だけがポップアップを更新します。
サイズと状態 パーマリンク
uiSize で周囲のコントロールと高さを揃え、無効、読み取り専用、エラーの各入力状態を適切に示します。
Controller のライフサイクル パーマリンク
別のコントロールから検索文字列の読み取り、フィールドのクリア、型付き選択値の確認を行う場合は TRAutocompleteController を所有します。所有する State とともに破棄してください。
フォーム検証 パーマリンク
TRAutocompleteFormField は検索文字列を編集可能なまま保ち、型付きの選択値を Form の検証と保存コールバックへ渡します。
ポインターとキーボード パーマリンク
入力フォーカスを移さずに候補へポインターを重ねられます。矢印キーでハイライトし、Enter で選択、Escape で閉じ、Tab では選択せずに移動します。
API
候補
| Prop | 型 / デフォルト | 用途 |
|---|---|---|
items | List<TRAutocompleteItem<T>> = const [] | 型付きの静的候補を指定します。無効な項目は結果から除外されます。 |
optionsBuilder | FutureOr<Iterable<TRAutocompleteItem<T>>> Function(String)? | 現在の検索文字列から候補を読み込みます。同期または非同期で返せます。 |
completionMode | TRAutocompleteCompletionMode = list | manual、list、inline、both の補完動作を選びます。 |
TRAutocompleteItem | value, label, enabled = true, leading?, trailing? | 型付きの値にラベルと任意の表示要素を組み合わせます。 |
状態とコールバック
| Prop | 型 / デフォルト | 用途 |
|---|---|---|
controller | TRAutocompleteController<T>? | query と value を監視し、select や clear を呼び出し、所有するテキスト・フォーカス controller を dispose します。 |
onQueryChange | ValueChanged<String>? | 自由入力の編集を通知します。 |
onSelected | ValueChanged<T>? | 候補から選択した型付きの値を通知します。 |
フィールドとフォーム
| Prop | 型 / デフォルト | 用途 |
|---|---|---|
enabled, readOnly | bool = true, bool = false | 操作を無効にするか、フォーカス可能な読み取り専用の検索文字列を保ちます。 |
label, placeholder, helperText, errorText | String? | フィールドと検証状態を説明します。 |
uiSize, width | TRUiSize = md, double? | コントロールサイズと任意の固定フィールド幅を指定します。 |
layerSize | TRLayerSize · match anchor / content height ≤ measureXl | フィールド幅とは別に、候補レイヤー全体のサイズを指定します。 |
TRAutocompleteFormField | FormField<T> | 型付きの選択値で検証と保存コールバックに参加します。 |