使用alertDialog时,我希望用户输入他们正在创建的新锻炼的名称。但是键盘导致整个小部件试图滚动并导致覆盖。我该如何解决这个问题?
警报对话框中的文本表单字段
showDialog(
context: context,
builder: (context) {
TextEditingController titleController = TextEditingController();
return AlertDialog(
title: const Text("Workout Title"),
content: SizedBox(
height: 110,
child: Column(
children: [
TextFormField(
focusNode: _focusNode,
controller: titleController,
inputFormatters: [
LengthLimitingTextInputFormatter(14),
]),
Padding(
padding: const EdgeInsets.only(top: 10),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
TextButton(
onPressed: () => Navigator.pop(context),
child: const Text("CANCEL")),
TextButton(
onPressed: () async {
setState(() {
if (titleController.text.isNotEmpty) {
dayTiles.add(
DayTile(title: titleController.text));
}
});
FocusScope.of(context).requestFocus(FocusNode());
saveData();
Navigator.pop(context);
},
child: const Text("DONE")),
],
),
),
],
),
),
);
});
2条答案
按热度按时间pexxcrt21#
溢出应该来自于支架体。请尝试使其可滚动,如
irlmq6kh2#
您不需要在
alertView
中使用Scaffold
,您需要的是将SingleChildScrollView
作为父Scaffold
的主体。