flutter - 当键盘打开警报对话框中的文本字段时隐藏
问题描述
我在按下按钮时创建了警报对话节目。在警报对话框中有一个文本字段,当键盘打开时会隐藏。我在下面添加了代码片段。
横向视图中的输出: 在此处输入图像描述
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: _MyAppState(),
);
}
}
class _MyAppState extends StatelessWidget {
TextEditingController _textFieldController = TextEditingController();
_displayDialog(BuildContext context) async {
return showDialog(
context: context,
barrierDismissible: true,
builder: (context) {
return AlertDialog(
title: Text('AlertDialog with TextField'),
content: SingleChildScrollView(
child: TextField(
controller: _textFieldController,
decoration: InputDecoration(
hintText: "ENTER A TEXT",
),
autofocus: true,
),
),
actions: <Widget>[
FlatButton(
child: Text('SUBMIT'),
onPressed: () {
Navigator.of(context).pop();
},
)
],
);
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('AlertDialog with TextField '),
),
body: Center(
child: FlatButton(
child: Text(
'Show Alert Dialogue',
),
color: Colors.deepOrange,
onPressed: () => _displayDialog(context),
),
),
),
);
}
}
解决方案
删除 singlechildscriollview 并将文本字段包装在具有一定高度的容器内。当您将滚动项放入警告框中时,在某些情况下,键盘打开可能会产生问题。
showDialog(
context: context,
barrierDismissible: true,
builder: (context) {
return AlertDialog(
title: Text('AlertDialog with TextField'),
content: Container(
height: 35,
child: TextField(
controller: _textFieldController,
decoration: InputDecoration(
hintText: "ENTER A TEXT",
),
autofocus: true,
),
),
actions: <Widget>[
FlatButton(
child: Text('SUBMIT'),
onPressed: () {
Navigator.of(context).pop();
},
)
],
);
});
推荐阅读
- python - 如何根据导入的嵌套 json 改进删除 pandas df 列名前缀?
- javascript - 错误的 _.merge() 结果
- c# - 在 DDL 执行期间修改了 SqlTableDependency 引用的实体“INSERTED”
- python - 如何将 Ipyleaflet 映射添加到 PyQt5 应用程序?
- python - 如何在同一列Pyspark中获取星期几和数字
- c++ - 是否可以在 UWP 应用程序中捕获本机未处理的异常?
- javascript - 如何在 Node.js 中使用 typescript 模块
- objective-c - 将 VOIP 通知负载转换为字符串
- ios - 如何连接多个外围 BLE 传感器 - iOS?
- animation - 如何使用 SwiftUI 在按下按钮时更改图像的边框?