showSinglePickerWithInput<T> static method

void showSinglePickerWithInput<T>({
  1. required BuildContext context,
  2. required void onChanged(
    1. String
    )?,
  3. required void onConfirm(
    1. String?
    )?,
  4. required TextEditingController inputController,
  5. bool isDismissible = true,
  6. bool enableDrag = true,
  7. BoxConstraints? constraints,
  8. bool filterable = false,
  9. Widget? title,
  10. String? titleText,
  11. double? height,
  12. List<PickerItem<T>>? options,
  13. ValueNotifier<List<PickerItem<T>>>? notifierOptions,
  14. Future<void>? onRequest()?,
  15. void onSelected()?,
  16. bool isScrollControlled = true,
})

显示单选选择器 & 输入框

Implementation

static void showSinglePickerWithInput<T>({
  required BuildContext context,
  required void Function(String)? onChanged,
  required void Function(String?)? onConfirm,
  required TextEditingController inputController,
  bool isDismissible = true,
  bool enableDrag = true,
  BoxConstraints? constraints,
  bool filterable = false,
  // -------------------------------------------------------------------------------------------- > Custom
  Widget? title,
  String? titleText,
  double? height,
  List<PickerItem<T>>? options,
  ValueNotifier<List<PickerItem<T>>>? notifierOptions,
  Future<void>? Function()? onRequest,
  void Function()? onSelected,
  bool isScrollControlled = true,
}) {
  CustomBottomSheet.showDefault(
    context: context,
    isDismissible: isDismissible,
    constraints: constraints ?? const BoxConstraints(),
    builder: (BuildContext context) {
      return SizedBox(
        height: height ?? context.height * ConfigStore.to.config.app.bottomSheetHeight,
        child: notifierOptions != null
            ? ValueListenableBuilder<List<PickerItem<T>>>(
                valueListenable: notifierOptions,
                builder: (BuildContext context, List<PickerItem<T>> data, Widget? widget) {
                  return InternalSinglePickerWithInput<T>(
                    options: data,
                    onChanged: onChanged,
                    title: title,
                    titleText: titleText,
                    filterable: filterable,
                    onRequest: onRequest,
                    onSelected: onSelected,
                    onConfirm: onConfirm,
                    inputController: inputController,
                  );
                },
              )
            : InternalSinglePickerWithInput<T>(
                options: options ?? [],
                onChanged: onChanged,
                title: title,
                titleText: titleText,
                onConfirm: onConfirm,
                filterable: filterable,
                onRequest: onRequest,
                onSelected: onSelected,
                inputController: inputController,
              ),
      );
    },
  );
}