我在Flutter刚起步,所以我可能做错了什么,但是...我无法解决这个问题。
关于如何为TextField
/ TextFormField
允许多行文本,我已经准备好很多帖子。
我尝试将maxLines
设置为null
或设置一个较大的数字,以强制执行(或不执行)最大行数,但是没有任何效果!
为什么简单的东西行不通?
// in a Scaffold of a StatefulWidget
body: Padding(
padding: const EdgeInsets.all(50.0),
child: TextField(
keyboardType: TextInputType.multiline,
minLines: 1,
maxLines: 5,
),
我已经在两种不同的真实Android设备上尝试过,按ENTER
键无济于事。不幸的是,由于没有Mac,因此无法在iOS上测试行为。
以下由 copsonroad 提供的解决方案,
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
widget.event.shortName == null || widget.event.shortName.isEmpty
? AppLocalizations.of(context).eventEditorTitleNewEvent
: AppLocalizations.of(context)
.eventEditorTitleEditEvent(widget.event.shortName)),
actions: <Widget>[
if (_canSave == true) ...[
IconButton(
icon: Icon(Icons.done),
onPressed: () => _saveEventAndPop(),
)
],
]),
body: Center(
child: Padding(
padding: const EdgeInsets.all(50),
child: SizedBox(
height: 5 * 50.0,
child: TextField(
decoration: InputDecoration(hintText: "Enter a message"),
keyboardType: TextInputType.multiline,
maxLines: 5,
),
),
),
),
);
}
产生以下结果:
答案 0 :(得分:1)
截屏:
@override
Widget build(BuildContext context) {
var maxLines = 5;
return Scaffold(
appBar: AppBar(),
body: Center(
child: Padding(
padding: const EdgeInsets.all(50),
child: SizedBox(
height: maxLines * 50.0,
child: TextField(
decoration: InputDecoration(hintText: "Enter a message"),
keyboardType: TextInputType.multiline,
maxLines: maxLines,
),
),
),
),
);
}
编辑:
在Android上对其进行测试: