如何在按下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。我希望使键盘完全不弹出。非常感谢。
答案 0 :(得分:0)
如果不不允许用户使用软键盘输入/编辑值,则可以将TextField小部件与{{3}结合使用,而不是Text }来打开GestureDetector。
答案 1 :(得分:0)
只需在文本字段的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());
},
),
答案 2 :(得分:0)
只需不使用Textfield而是使用Container并将其与Gesture Detector打包在一起,并且在Container内将日期选择为Text
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")
)
)