BaseSearchField<T extends Object> constructor

const BaseSearchField<T extends Object>({
  1. required String? labelText,
  2. required FutureOr<Iterable<T>> optionsBuilder(
    1. TextEditingValue
    ),
  3. required Widget item(
    1. T element
    )?,
  4. required void onChanged(
    1. String text
    )?,
  5. required void onSelected(
    1. T
    )?,
  6. required String getItemText(
    1. T value
    )?,
  7. required Widget fieldSuffixIcon({
    1. required bool menuOpened,
    2. required VoidCallback onCloseIconTap,
    3. required VoidCallback onlyCloseMenu,
    })?,
  8. ButtonStyle? itemStyle,
  9. List<T>? unenabledList = const [],
  10. double menuMaxHeight = 400,
  11. EdgeInsets menuMargin = const EdgeInsets.only(top: 4, bottom: 8),
  12. EdgeInsets listPadding = const EdgeInsets.symmetric(vertical: 16),
  13. double? itemsSpace,
  14. BoxDecoration? menuDecoration,
  15. Clip listClipBehavior = Clip.hardEdge,
  16. Key? textFieldKey,
  17. bool? isRequired,
  18. String displayStringForOption(
    1. T value
    )?,
  19. Key? key,
  20. bool? showErrorText,
  21. String? errorText,
  22. TextEditingController? controller,
  23. FocusNode? focusNode,
  24. Icon? unfocusSuffixIcon,
  25. double? suffixIconPadding,
  26. int? errorMaxLines,
  27. String? description,
  28. TextStyle? textStyle,
  29. Widget customTextField({
    1. required TextEditingController controller,
    2. required FocusNode focusNode,
    3. required GlobalKey<State<StatefulWidget>> key,
    4. required void onChanged(
      1. String
      )?,
    5. required void onSubmitted(
      1. String
      )?,
    6. required Widget? suffixIcon,
    7. required Key? textFieldKey,
    })?,
  30. Widget menuList({
    1. required Widget item(
      1. int index
      ),
    2. required int length,
    })?,
  31. Widget listButtonItem({
    1. required int index,
    2. required bool isEnabled,
    3. required Key? key,
    4. required void onPressed(),
    5. required T value,
    })?,
  32. InputDecoration? fieldDecoration,
  33. bool useFindChildIndexCallback = true,
  34. bool usePrototype = true,
  35. List<TextInputFormatter>? fieldInputFormatters,
  36. TextStyle? labelTextStyle,
  37. OptionsViewOpenDirection optionsViewOpenDirection = OptionsViewOpenDirection.down,
  38. TextEditingValue? initValue,
  39. void onFieldSubmitted(
    1. String
    )?,
  40. Key? listKey,
  41. Key? listItemKey,
  42. double? listCacheExtent,
  43. bool listAddSemanticIndexes = true,
  44. ScrollController? listController,
  45. String? listRestorationId,
  46. int? listSemanticChildCount,
  47. DragStartBehavior listDragStartBehavior = DragStartBehavior.start,
  48. ScrollPhysics? listPhysics,
  49. bool? listPrimary,
  50. Key? fieldIconKey,
})

Implementation

const BaseSearchField({
  required this.labelText,
  required this.optionsBuilder,
  required this.item,
  required this.onChanged,
  required this.onSelected,
  required this.getItemText,
  required this.fieldSuffixIcon,
  this.itemStyle,
  this.unenabledList = const [],
  this.menuMaxHeight = 400,
  this.menuMargin = const EdgeInsets.only(top: 4, bottom: 8),
  this.listPadding = const EdgeInsets.symmetric(vertical: 16),
  this.itemsSpace,
  this.menuDecoration,
  this.listClipBehavior = Clip.hardEdge,
  this.textFieldKey,
  this.isRequired,
  this.displayStringForOption,
  super.key,
  this.showErrorText,
  this.errorText,
  this.controller,
  this.focusNode,
  this.unfocusSuffixIcon,
  this.suffixIconPadding,
  this.errorMaxLines,
  this.description,
  this.textStyle,
  this.customTextField,
  this.menuList,
  this.listButtonItem,
  this.fieldDecoration,
  this.useFindChildIndexCallback = true,
  this.usePrototype = true,
  this.fieldInputFormatters,
  this.labelTextStyle,
  this.optionsViewOpenDirection = OptionsViewOpenDirection.down,
  this.initValue,
  this.onFieldSubmitted,
  this.listKey,
  this.listItemKey,
  this.listCacheExtent,
  this.listAddSemanticIndexes = true,
  this.listController,
  this.listRestorationId,
  this.listSemanticChildCount,
  this.listDragStartBehavior = DragStartBehavior.start,
  this.listPhysics,
  this.listPrimary,
  this.fieldIconKey,
}) : assert(
        !(item == null && listButtonItem == null),
        'Either provide a [listItem] or a custom [listButtonItem].',
      );