在正常的Android开发中,您可以动态更改键盘类型,但在Flutter中似乎找不到这种方法。
TextInputType roomKeyboardType = TextInputType.text; // right on top of the build function
我的自定义表单字段:
Padding(
padding: const EdgeInsets.all(8.0),
child: FormBuilderTextField(
attribute: "room",
controller: widget.controllers[1],
keyboardType: roomKeyboardType,
decoration: InputDecoration(
filled: true,
labelText: "Room",
prefixIcon: Icon(Icons.location_on, color: Colors.black),
suffixIcon: IconButton(
icon: Icon(Icons.keyboard, color: Colors.black),
onPressed: () {
if (roomKeyboardType == TextInputType.text) {
roomKeyboardType = TextInputType.number;
return;
}
roomKeyboardType = TextInputType.text;
},
)),
validators: [
FormBuilderValidators.required(
errorText: "Please enter the room number",
),
],
),
),
现在,在表单字段的末尾,我有一个看起来像这样的东西,它带有键盘IconButton
。当我单击它时,我希望我的键盘类型会改变,但是当我这样做时,什么也不会发生。它应该在文本和数字键盘类型之间切换,并且只保留在文本上,因为这就是我最初设置的变量。我知道该变量正在更改,这是因为Flutter可能没有在重新制作小部件,因此键盘保持不变。有什么方法可以解决这个问题,我是否可以动态更改keyboardType
?
答案 0 :(得分:0)
您可以在TextFieldWidgets和许多输入小部件中更改键盘类型 像这样:
TextField(
keyboardType: TextInputType.number,
hintText: '6 Digit-Code',
),