繁体   English   中英

提交表单时如何使用 ListView.builder 输出小部件

[英]How to use a ListView.builder to output a widget when a form is submitted

嗨,我有一个文本表单字段,当填写表单时,我想使用 listview.builder 在多个页面上输出值,目前我可以在单个容器中输出数据,当我再次填写表单时,它不会添加另一个容器它只会更新当前容器的值如果有人知道怎么做请帮忙

一个完整的例子:

来源:

import 'package:flutter/material.dart';

class Demo extends StatefulWidget {
  @override
  _DemoState createState() => new _DemoState();
}

class _DemoState extends State<Demo> {
  List<String> _items = new List(); // to store comments

  final myController = TextEditingController();

  void _addComment() {
    if (myController.text.isNotEmpty) {
      // check if the comments text input is not empty
      setState(() {
        _items.add(myController.text); // add new commnet to the existing list
      });

      myController.clear(); // clear the text from the input
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(title: Text("DEMO")),
        body: Container(
            padding: EdgeInsets.all(15),
            child: Column(children: [
              Row(
                  crossAxisAlignment: CrossAxisAlignment.center,
                  mainAxisAlignment: MainAxisAlignment.spaceBetween,
                  children: <Widget>[
                    Expanded(
                        child: TextField(
                      style: TextStyle(color: Colors.black),
                      controller: myController,
                      maxLines: 5,
                      keyboardType: TextInputType.multiline,
                    )),
                    SizedBox(width: 15),
                    InkWell(
                        onTap: () {
                          _addComment();
                        },
                        child: Icon(Icons.send))
                  ]),
              SizedBox(height: 10),
              Expanded(
                  child: ListView.builder(
                      itemCount: _items.length,
                      itemBuilder: (BuildContext ctxt, int index) {
                        return Padding(
                            padding: EdgeInsets.all(10),
                            child: Text("${(index + 1)}. " + _items[index]));
                      }))
            ])));
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM