我正在尝试创建注册小部件。我完成的大部分工作都已经完成并且可以工作。 我在列出的文本字段之间仅存在一些填充问题。 如何创建填充?
由于堆栈溢出,这篇文章大部分是代码,所以这里是一些纯文本,因为我真的不能再多说了。我提出了我的问题,并提供了我的代码。
var entries = [];
class RegisPage extends StatefulWidget {
@override
_RegisPageState createState() => _RegisPageState();
}
class _RegisPageState extends State<RegisPage> {
@override
Widget build(BuildContext context) {
Map<String,TextEditingController> textEditingControllers = {};
var textFields = <TextFormField>[];
entries.forEach((str) {
var textEditingController = TextEditingController();
textEditingControllers.putIfAbsent(str, ()=>textEditingController);
return textFields.add(
TextFormField(
controller: textEditingController,
decoration:
InputDecoration(
labelText: str,
border:
OutlineInputBorder(
borderRadius:
BorderRadius.circular(25.0)
)
),
),
);
});
return Scaffold(
appBar: AppBar(
title: Text('Registration'),
),
body:Center(
child:
SingleChildScrollView(
child:
Column(
children:[
Column(children:textFields),
RaisedButton(
child: Text("Register"),
onPressed: (){
entries.forEach((str){
print(textEditingControllers[str].text);
});
}
)
]
)
)
)
);
}
}
答案 0 :(得分:0)
如果您想增加间距,可以像这样填充biglist = [(1.913, 0), (13.06, 22), (24.041, 36), (34.972, 50)]
[list1,list2] = [[x[0] for x in biglist], [x[1] for x in biglist]]
并填充:
TextFormField
然后您可以不用 Padding(
padding: EdgeInsets.fromLTRB(left, top, right, bottom),
child: TextFormField(
controller: textEditingController,
decoration: InputDecoration(
labelText: str,
border: OutlineInputBorder(
borderRadius:
BorderRadius.circular(25.0)
)
),
),
),
的列表,而可以TextFormField
像这样:
List<Widget>
一切都应该保持相同,但是现在您可以在所有面上指定填充/间距。
希望这会有所帮助!