desktop_virtual_keyboard 0.1.3
desktop_virtual_keyboard: ^0.1.3 copied to clipboard
Customizable virtual keyboard and input widgets for Flutter desktop applications (EN/RU/UZ layouts, floating or docked).
0.1.3 #
- Fix:
DropdownInputс легаси-optionsбольше не падает (null as Object), когдаindexэлемента равен null, а генерик выведен в ненулевой тип — легаси-значения теперь приводятся к nullableT?.
0.1.2 #
SearchInput.suffixIcon: свой суффикс переопределяет встроенную лупу/крестик очистки (обратная совместимость со старым API).
0.1.1 #
VKTheme.highlightRequiredBorder: опция постоянной подсветки обязательных полей (isRequired) рамкой цвета ошибки — конвенция cafe_dashboard.
0.1.0 #
Крупное обновление: багфиксы, рефакторинг API и новые возможности.
Исправления #
enabledиautofocusтеперь реально применяются к полю.- Иконка клавиатуры больше не рассинхронизируется при переключении между полями — состоянием видимости управляет только оверлей (владелец клавиатуры отслеживается явно).
DesktopVirtualKeyboard.init()стал опциональным: тема по умолчанию вместоLateInitializationError.- Backspace на виртуальной клавиатуре прогоняет текст через
inputFormatters(маска телефона больше не разъезжается) и корректно проходит разделители маски (не «залипает» на пробеле). - Ввод с виртуальной клавиатуры применяет цепочку форматтеров как системный
EditableText(одно присваивание значения вместо N). - Неизвестные
TextInputType(url, name, …) открывают полную клавиатуру вместо пустого оверлея. - Клавиатура прижимается к границам экрана: не открывается и не перетаскивается за экран, при нехватке места снизу открывается над полем.
- Текст ошибки валидации виден под полем (раньше показывался только красный бордер).
- В русскую раскладку добавлены
ъиё(ё — долгим нажатием нае). - Удалён мёртвый код, убрана неиспользуемая зависимость
flutter_form_builder.
Изменения API (breaking) #
obSecureCharacter→obscureCharacter;obsecureTextуPasswordInputудалён (пароль всегда скрыт изначально, есть глаз).nextActionбольше не обязателен (по умолчаниюfalse).controllerиinitialValueодновременно — assert.KeyboardOverlay: статическое полеtextInputTypeудалено, тип передаётся параметром; появилисьowner/hideIfOwner— клавиатуру закрывает только её владелец.FullKeyboard: enumKeyboardLanguageзаменён на классKeyboardLayout(раскладка как данные).DropdownInput<T>типизирован:items: List<DropdownEntry<T>>+value; старыеoptions/resultработают, но помечены deprecated.PhoneInputиспользуетTextInputType.phone(цифровая клавиатура с+).SearchInputиPasswordInputстали наследникамиInput(минус ~150 строк дублирования).
Новое #
- Раскладки: узбекская латиница (
oʻ,gʻдолгим нажатием) и узбекская кириллица (қ,ғ,ҳ,ў); API собственных раскладок черезKeyboardLayout. - Одноразовый Shift + Caps Lock двойным тапом.
- Автоповтор Backspace при удержании.
- Альтернативные символы долгим нажатием (
longPressAlternatives). - Быстрые клавиши
@/.com/.uz/.ruдля email-полей. - Цифровая клавиатура: клавиша
00, настраиваемый десятичный разделитель, phone-режим. - PIN-режим
PasswordInput(pinMode,shufflePin— перемешивание цифр). - Автопоказ клавиатуры при фокусе (
autoShowOnFocusглобально илиautoShowKeyboardна поле). - Docked-режим — клавиатура прижата к низу экрана (
VKPlacement.docked). - Запоминание последней раскладки и позиции клавиатуры в рамках сессии.
- Анимация появления/скрытия клавиатуры.
- Тема клавиатуры в
VKTheme: цвета клавиш, размеры, скругления. - Тесты: 41 unit/widget-тест (форматтер, обработчики ввода, клавиатуры, поля).
0.0.1 #
- Первый выпуск: полная и цифровая клавиатуры, поля
TextInput,NumberInput,TextAreaInput,PhoneInput,SearchInput,PasswordInput,DropdownInput.