如何在文本字段列表内创建填充?

时间:2019-07-30 16:25:56

标签: flutter

我正在尝试创建注册小部件。我完成的大部分工作都已经完成并且可以工作。 我在列出的文本字段之间仅存在一些填充问题。 如何创建填充?

由于堆栈溢出,这篇文章大部分是代码,所以这里是一些纯文本,因为我真的不能再多说了。我提出了我的问题,并提供了我的代码。

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);
                        });
                      }
                    )
                  ]
                )
              )  
            )  
          );
  }
}

1 个答案:

答案 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>

一切都应该保持相同,但是现在您可以在所有面上指定填充/间距。

希望这会有所帮助!