#flutter #keyboard #textformfield
#flutter #клавиатура #textformfield
Вопрос:
Я начал писать приложение Flutter для удаленного управления некоторым радиопотоком. Я столкнулся с проблемой при добавлении TextFormField
для отображения текущей настройки громкости потока. (Причина, по которой я выбрал TextFormField
вместо просто Text
, заключается в том, что я хотел использовать поле как для отображения текущей настройки, так и для того, чтобы позволить пользователю изменять текущее значение в одном месте.)
Проблема заключается в следующем: когда я добавил TextFormField
(расположен внутри зеленой панели на снимке экрана ниже, после текста Vol:
), я понял, что всякий раз, когда я запускал этот просмотр / страницу, встроенная клавиатура всегда отображалась по умолчанию при входе на страницу.
Вместо этого я бы хотел, чтобы клавиатура отображалась только тогда, когда пользователь нажимает внутри TextFormField
.
Код для TextFormField
выглядит следующим образом:
TextFormField(
onFieldSubmitted: (value){
print("The value entered is : $value");
},
// Define keyboard type
keyboardType: TextInputType.number,
// Make sure user doesn't enter letters or punctuation
inputFormatters: <TextInputFormatter>[WhitelistingTextInputFormatter.digitsOnly],
validator: (val){
return null;
},
autofocus: true,
controller: volTextEditingController,
style: TextStyle(
color: Colors.white,
fontSize: 16,
),
decoration: InputDecoration(
border: InputBorder.none,
),
maxLines: 1,
)
Итак, мне было интересно, знает ли кто-нибудь, как предотвратить появление клавиатуры при запуске показанного вида / страницы. Заранее спасибо! Полный код, при необходимости, доступен на GitGub.
Ответ №1:
Я только что выяснил, что эта проблема была вызвана настройкой autofocus: true
. Итак, удаление этого решает проблему.