CupertinoTypeAheadFormField<T> constructor

CupertinoTypeAheadFormField<T>({
  1. Key? key,
  2. String? initialValue,
  3. bool getImmediateSuggestions = false,
  4. @Deprecated('Use autoValidateMode parameter which provides more specific ' 'behavior related to auto validation. ' 'This feature was deprecated after Flutter v1.19.0.') bool autovalidate = false,
  5. bool enabled = true,
  6. AutovalidateMode? autovalidateMode,
  7. FormFieldSetter<String>? onSaved,
  8. FormFieldValidator<String>? validator,
  9. ErrorBuilder? errorBuilder,
  10. WidgetBuilder? noItemsFoundBuilder,
  11. WidgetBuilder? loadingBuilder,
  12. Duration debounceDuration = const Duration(milliseconds: 300),
  13. CupertinoSuggestionsBoxDecoration suggestionsBoxDecoration = const CupertinoSuggestionsBoxDecoration(),
  14. CupertinoSuggestionsBoxController? suggestionsBoxController,
  15. required SuggestionSelectionCallback<T> onSuggestionSelected,
  16. required ItemBuilder<T> itemBuilder,
  17. required SuggestionsCallback<T> suggestionsCallback,
  18. double suggestionsBoxVerticalOffset = 5.0,
  19. CupertinoTextFieldConfiguration textFieldConfiguration = const CupertinoTextFieldConfiguration(),
  20. AnimationTransitionBuilder? transitionBuilder,
  21. Duration animationDuration = const Duration(milliseconds: 500),
  22. double animationStart = 0.25,
  23. AxisDirection direction = AxisDirection.down,
  24. bool hideOnLoading = false,
  25. bool hideOnEmpty = false,
  26. bool hideOnError = false,
  27. bool hideSuggestionsOnKeyboardHide = true,
  28. bool keepSuggestionsOnLoading = true,
  29. bool keepSuggestionsOnSuggestionSelected = false,
  30. bool autoFlipDirection = false,
  31. int minCharsForSuggestions = 0,
})

Implementation

CupertinoTypeAheadFormField(
    {Key? key,
    String? initialValue,
    bool getImmediateSuggestions: false,
    @Deprecated('Use autoValidateMode parameter which provides more specific '
        'behavior related to auto validation. '
        'This feature was deprecated after Flutter v1.19.0.')
        bool autovalidate: false,
    bool enabled: true,
    AutovalidateMode? autovalidateMode,
    FormFieldSetter<String>? onSaved,
    FormFieldValidator<String>? validator,
    ErrorBuilder? errorBuilder,
    WidgetBuilder? noItemsFoundBuilder,
    WidgetBuilder? loadingBuilder,
    Duration debounceDuration: const Duration(milliseconds: 300),
    CupertinoSuggestionsBoxDecoration suggestionsBoxDecoration:
        const CupertinoSuggestionsBoxDecoration(),
    CupertinoSuggestionsBoxController? suggestionsBoxController,
    required SuggestionSelectionCallback<T> onSuggestionSelected,
    required ItemBuilder<T> itemBuilder,
    required SuggestionsCallback<T> suggestionsCallback,
    double suggestionsBoxVerticalOffset: 5.0,
    this.textFieldConfiguration: const CupertinoTextFieldConfiguration(),
    AnimationTransitionBuilder? transitionBuilder,
    Duration animationDuration: const Duration(milliseconds: 500),
    double animationStart: 0.25,
    AxisDirection direction: AxisDirection.down,
    bool hideOnLoading: false,
    bool hideOnEmpty: false,
    bool hideOnError: false,
    bool hideSuggestionsOnKeyboardHide: true,
    bool keepSuggestionsOnLoading: true,
    bool keepSuggestionsOnSuggestionSelected: false,
    bool autoFlipDirection: false,
    int minCharsForSuggestions: 0})
    : assert(
          initialValue == null || textFieldConfiguration.controller == null),
      assert(minCharsForSuggestions >= 0),
      super(
          key: key,
          onSaved: onSaved,
          validator: validator,
          initialValue: textFieldConfiguration.controller != null
              ? textFieldConfiguration.controller!.text
              : (initialValue ?? ''),
          enabled: enabled,
          autovalidateMode: autovalidateMode,
          builder: (FormFieldState<String> field) {
            final CupertinoTypeAheadFormFieldState state =
                field as CupertinoTypeAheadFormFieldState<dynamic>;

            return CupertinoTypeAheadField(
              getImmediateSuggestions: getImmediateSuggestions,
              transitionBuilder: transitionBuilder,
              errorBuilder: errorBuilder,
              noItemsFoundBuilder: noItemsFoundBuilder,
              loadingBuilder: loadingBuilder,
              debounceDuration: debounceDuration,
              suggestionsBoxDecoration: suggestionsBoxDecoration,
              suggestionsBoxController: suggestionsBoxController,
              textFieldConfiguration: textFieldConfiguration.copyWith(
                onChanged: (text) {
                  state.didChange(text);
                  textFieldConfiguration.onChanged?.call(text);
                },
                controller: state._effectiveController,
              ),
              suggestionsBoxVerticalOffset: suggestionsBoxVerticalOffset,
              onSuggestionSelected: onSuggestionSelected,
              itemBuilder: itemBuilder,
              suggestionsCallback: suggestionsCallback,
              animationStart: animationStart,
              animationDuration: animationDuration,
              direction: direction,
              hideOnLoading: hideOnLoading,
              hideOnEmpty: hideOnEmpty,
              hideOnError: hideOnError,
              hideSuggestionsOnKeyboardHide: hideSuggestionsOnKeyboardHide,
              keepSuggestionsOnLoading: keepSuggestionsOnLoading,
              keepSuggestionsOnSuggestionSelected:
                  keepSuggestionsOnSuggestionSelected,
              autoFlipDirection: autoFlipDirection,
              minCharsForSuggestions: minCharsForSuggestions,
            );
          });