import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:satu/shared/app_colors.dart'; import 'package:satu/shared/shared_styles.dart'; import 'package:satu/shared/ui_helpers.dart'; import 'package:searchable_dropdown/searchable_dropdown.dart'; import 'note_text.dart'; class DropDownField extends StatefulWidget { final bool isReadOnly; final String placeholder; final String validationMessage; final bool smallVersion; final FocusNode fieldFocusNode; final FocusNode nextFocusNode; final String additionalNote; final Function(String) onChanged; final String initialValue; final String labelText; DropDownField( { @required this.placeholder, this.fieldFocusNode, this.nextFocusNode, this.additionalNote, this.onChanged, this.initialValue, this.validationMessage, this.isReadOnly = false, this.smallVersion = false, this.labelText}); @override _DropDownFieldState createState() => _DropDownFieldState(); } class _DropDownFieldState extends State { double fieldHeight = 55; @override void initState() { super.initState(); } @override Widget build(BuildContext context) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ if (widget.labelText != null) NoteText(widget.labelText), Container( //height: widget.smallVersion ? 40 : fieldHeight, constraints: BoxConstraints(minHeight: widget.smallVersion ? 40 : fieldHeight), alignment: Alignment.centerLeft, padding: fieldPadding, decoration: widget.isReadOnly ? disabledFieldDecoration : fieldDecoration, child: Expanded( child: SearchableDropdown.single( items: ['Частное лицо', 'ИП Иванов', 'ТО "Рога и копыта"', 'Network Energy'] .map>((String value) { return DropdownMenuItem( value: value, child: Text(value), ); }).toList(), value: widget.initialValue, readOnly: widget.isReadOnly, hint: "Контрагент", searchHint: "Укажите контрагента", underline: Container( height: 1.0, decoration: BoxDecoration( border: Border(bottom: BorderSide(color: yellowColor, width: 3.0)) ), ), onChanged: (value) { print(value); }, isExpanded: true, ), ), ), if (widget.validationMessage != null) NoteText( widget.validationMessage, color: Colors.red, ), if (widget.additionalNote != null) verticalSpace(5), if (widget.additionalNote != null) NoteText(widget.additionalNote), verticalSpaceSmall ], ); } }