如何在Flutter(在应用程序中)中更新keyboardType?

时间:2019-09-08 16:22:44

标签: flutter

在正常的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可能没有在重新制作小部件,因此键盘保持不变。有什么方法可以解决这个问题,我是否可以动态更改keyboardTypeKeyboard in flutter

1 个答案:

答案 0 :(得分:0)

您可以在TextFieldWidgets和许多输入小部件中更改键盘类型 像这样:

   TextField(
            keyboardType: TextInputType.number,
            hintText: '6 Digit-Code',
          ),