diff --git a/lib/src/dropdown.dart b/lib/src/dropdown.dart index a2499e1..a0eb3da 100644 --- a/lib/src/dropdown.dart +++ b/lib/src/dropdown.dart @@ -56,7 +56,7 @@ class DropdownFormField extends StatefulWidget { final InputDecoration? decoration; final Color? dropdownColor; final DropdownEditingController? controller; - final void Function(T item)? onChanged; + final void Function(T? item)? onChanged; final void Function(T?)? onSaved; final String? Function(T?)? validator; @@ -100,7 +100,7 @@ class DropdownFormField extends StatefulWidget { DropdownFormFieldState createState() => DropdownFormFieldState(); } -class DropdownFormFieldState extends State +class DropdownFormFieldState extends State> with SingleTickerProviderStateMixin { final FocusNode _widgetFocusNode = FocusNode(); final FocusNode _searchFocusNode = FocusNode(); @@ -111,8 +111,7 @@ class DropdownFormFieldState extends State final DropdownEditingController? _controller = DropdownEditingController(); - final Function(T?, T?) _selectedFn = - (dynamic item1, dynamic item2) => item1 == item2; + final Function(T?, T?) _selectedFn = (T? item1, T? item2) => item1 == item2; bool get _isEmpty => _selectedItem == null; bool _isFocused = false; @@ -126,7 +125,7 @@ class DropdownFormFieldState extends State Timer? _debounce; String? _lastSearchString; - DropdownEditingController? get _effectiveController => + DropdownEditingController? get _effectiveController => widget.controller ?? _controller; DropdownFormFieldState() : super() {} diff --git a/lib/src/text-dropdown.dart b/lib/src/text-dropdown.dart index fde7c22..1d407dc 100644 --- a/lib/src/text-dropdown.dart +++ b/lib/src/text-dropdown.dart @@ -6,7 +6,7 @@ class TextDropdownFormField extends StatelessWidget { final List options; final InputDecoration? decoration; final DropdownEditingController? controller; - final void Function(String item)? onChanged; + final void Function(String? item)? onChanged; final void Function(String?)? onSaved; final String? Function(String?)? validator; final bool Function(String item, String str)? filterFn;