#android #flutter #keyboard
#Android #флаттер #клавиатура
Вопрос:
Я разрабатываю приложение в Flutter. Приложение работает без проблем в iOS и, похоже, корректно работает с клавиатурой Swiftkey, но у меня возникают проблемы с gBoard и клавиатурой Samsung.
Когда я устанавливаю obscureText
значение true
для a TextField
или a TextFormField
, кнопка backspace на клавиатуре удаляет два символа одновременно. Когда obscureText
поле находится false
, оно работает правильно. Кроме того, я могу установить obscureText
для поля true
значение, и оно будет работать нормально, если я использую клавиатуру Switkey.
Я просмотрел все и не могу найти ничего, связанного с этим, поэтому я в тупике. Я попытался вернуть свой экран к абсолютному коду barebones, чтобы определить, была ли проблема с конфигурацией или, возможно, проблема с зависимостью, но проблема по-прежнему сохраняется.
Вот виджет TextFormField, который является виновником:
TextFormField(
obscureText: true,
decoration: InputDecoration(
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
hintStyle: TextStyle(
fontSize: textSizeLarge,
color: t12_text_secondary
),
hintText: 'Hours...',
prefixIcon: Icon(
Icons.access_time,
color: t12_text_secondary,
size: 25,
),
fillColor: Colors.white,
filled: true,
),
style: TextStyle(
fontSize: textSizeLarge,
color: t12_text_color_primary,
fontFamily: fontRegular,
height: 1.5
),
validator: (value) {
if(value.isEmpty){
return "Date Required";
}else if(!helpers.isDouble(value)){
return "Value must be a number";
}
else{
return null;
}
},
),
Ответ №1:
Вероятно, это связано с проблемой Flutter 70744 и другими подобными проблемами.
В последнее время было несколько TextInputType
ошибок, возможно, из-за того, что SDK был изменен для поддержки целевых выпусков Web, Linux и Windows.
Комментарии:
1. Спасибо за комментарий. Я рассмотрю эту проблему с флаттером. Недавно я заметил, что эта ошибка появилась и в другом моем проекте flutter.
Ответ №2:
Я столкнулся с этой проблемой, когда использовал бета-канал flutter. Это было исправлено после того, как я переключился на «стабильный» канал. Я думаю, что эта проблема по-прежнему является ошибкой в канале «бета».
Вы можете проверить свой канал, набрав «flutter —version» в терминале.
Если это не «стабильный» канал, вы можете изменить его, набрав «стабильный канал flutter» в терминале.
Комментарии:
1. Я давно не работал над этим приложением, поэтому пока не смог попробовать другой ответ. Когда я поиграю с ним в следующий раз, я попробую оба из них. Спасибо за совет.