Flutter TextField-如何禁用键盘?

Flutter TextField-如何禁用键盘?,flutter,flutter-layout,Flutter,Flutter Layout,按下文本字段时如何禁用弹出键盘? 我想要一个约会时间选择器 (DatePicker来自pub.dev) 这就是我所尝试的: TextField( onTap: (){ SystemChannels.textInput.invokeMethod('TextInput.hide'); DatePicker.showDatePicker(context, showTitleActions: true

按下文本字段时如何禁用弹出键盘? 我想要一个约会时间选择器

(DatePicker来自pub.dev)

这就是我所尝试的:

TextField(
   onTap: (){
   SystemChannels.textInput.invokeMethod('TextInput.hide');
                    DatePicker.showDatePicker(context,
                          showTitleActions: true,
                          minTime: DateTime(1940, 1, 1),
                          maxTime: DateTime.now(), 
                          onConfirm: (date) {
                            birth=date;
                        print('confirm $birth');
                      }, currentTime: DateTime.now());
                  },
                ),

无论何时按下文本字段,键盘都会弹出一小段时间,然后被日期选择器取代。我希望键盘不要弹出。非常感谢。

如果您不打算允许用户使用软键盘输入/编辑值,那么您可以使用widget with打开。

如果您不打算允许用户使用软键盘输入/编辑值,那么,您可以使用widget with打开。

只需在文本字段的
InputDecoration
属性中将
enable
属性设置为false即可

TextField(
  decoration: InputDecoration( enabled: false, ),
     onTap: (){
         SystemChannels.textInput.invokeMethod('TextInput.hide');
                DatePicker.showDatePicker(context,
                      showTitleActions: true,
                      minTime: DateTime(1940, 1, 1),
                      maxTime: DateTime.now(), 
                      onConfirm: (date) {
                        birth=date;
                    print('confirm $birth');
                  }, currentTime: DateTime.now());
              },
            ),

只需在文本字段的
InputDecoration
属性中将
enable
属性设置为false即可

TextField(
  decoration: InputDecoration( enabled: false, ),
     onTap: (){
         SystemChannels.textInput.invokeMethod('TextInput.hide');
                DatePicker.showDatePicker(context,
                      showTitleActions: true,
                      minTime: DateTime(1940, 1, 1),
                      maxTime: DateTime.now(), 
                      onConfirm: (date) {
                        birth=date;
                    print('confirm $birth');
                  }, currentTime: DateTime.now());
              },
            ),

简单地说,不要使用Textfield use Container,而是使用手势检测器将其包装起来,在容器中是作为文本选择的日期

GestureDetector(
  onTap: (){
   DatePicker.showPicker(context, 
      showTitleActions: true,
      minTime: DateTime(1940, 1, 1),
      maxTime: DateTime.now(),
      onConfirm: (date){
       setState((){
         birth = date;
      });
     },
     currentTime: DateTime.now()
   );
  }
  child: Container(
     child: Text("$birth")
  )
)

简单地说,不要使用Textfield use Container,而是使用手势检测器将其包装起来,在容器中是作为文本选择的日期

GestureDetector(
  onTap: (){
   DatePicker.showPicker(context, 
      showTitleActions: true,
      minTime: DateTime(1940, 1, 1),
      maxTime: DateTime.now(),
      onConfirm: (date){
       setState((){
         birth = date;
      });
     },
     currentTime: DateTime.now()
   );
  }
  child: Container(
     child: Text("$birth")
  )
)

到目前为止,我发现了更多的东西:设置
readOnly:true
。但在设计上仍然存在差异。到目前为止,我发现了更多的东西:设置
readOnly:true
。但在设计上仍然存在差异