我在Flutter应用中有一个文本字段,用户可以在其中输入他们的姓名。他们可以按“提交”。但是当名称太短时,我会显示一个对话框。
问题:当显示对话框时,键盘自动关闭,并且警报对话框从上方(当键盘仍处于活动状态时)跳转到下方(当键盘不再处于活动状态时,半秒后)。 / p>
showDialog(
context: context,
builder: (_) => new AlertDialog(
title: Text("Error"),
content:
Text("Name too short"),
));
显示AlertDialog时是否可以保持键盘处于活动状态?
谢谢!
答案 0 :(得分:1)
我不相信有一种方法可以做你想做的事,但是我已经弄清楚了如何尝试一下,看看你的想法
Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
TextFormField(
onFieldSubmitted: (String value) async {
if (value.length < 3) {
return await showDialog(
context: context,
builder: (_) => AlertDialog(
title: Text("Error"),
content: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
AbsorbPointer(
child: TextFormField(
cursorColor: Colors.white,
decoration: InputDecoration(
border: InputBorder.none,
hintText: " Name too short",
hintStyle: TextStyle(color: Colors.black),
),
autofocus: true,
),
),
],
),
),
);
}
},
)
],
),
),
答案 1 :(得分:0)
尝试通过这种方式做到这一点:
showDialog(
context: context,
builder: (_) {
SystemChannels.textInput.invokeMethod('TextInput.show');
return AlertDialog(
title: Text("Error"),
content: Text("Name too short"),
);
},
);