TextField-如何禁用键盘?

如何在按下TextField时禁用弹出键盘? 我想改用DateTime选择器。

(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());
                  },),

每当按下TextField时,键盘都会弹出一小段时间,之后将其替换为DatePicker。我希望使键盘完全不弹出。非常感谢。

michael2014 回答:TextField-如何禁用键盘?

如果不允许用户使用软键盘输入/编辑值,则可以将TextField小部件与{{3}结合使用,而不是Text }来打开GestureDetector

,

只需在文本字段的enable属性中将InputDecoration属性设置为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而是使用Container并将其与Gesture Detector打包在一起,并且在Container内将日期选择为Text

GestureDetector(
  onTap: (){
   DatePicker.showPicker(context,onConfirm: (date){
       setState((){
         birth = date;
      });
     },currentTime: DateTime.now()
   );
  }
  child: Container(
     child: Text("$birth")
  )
)
本文链接:https://www.f2er.com/3152260.html

大家都在问