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

Flutter 提交表单时如何使用ListView.builder输出小部件,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,您好,我有一个文本表单字段,填写表单时,我希望使用listview.builder在多个页面上输出值。当前,我可以在单个容器中输出数据,当我再次填写表单时,它不会添加其他容器,它只会更新当前容器的值 如果有人知道怎么做,请提供完整的示例: 来源: import 'package:flutter/material.dart'; class Demo extends StatefulWidget { @override _DemoState createState() => new

您好,我有一个文本表单字段,填写表单时,我希望使用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]));
                      }))
            ])));
  }
}
导入“包装:颤振/材料.省道”;
类Demo扩展StatefulWidget{
@凌驾
_DemoState createState()=>新建;
}
类_DemoState扩展了状态{
List _items=new List();//用于存储注释
最终myController=TextEditingController();
void _addComment(){
if(myController.text.isNotEmpty){
//检查注释文本输入是否为空
设置状态(){
_items.add(myController.text);//将新的commnet添加到现有列表中
});
myController.clear();//从输入中清除文本
}
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(标题:文本(“演示”),
主体:容器(
填充:边缘设置。全部(15),
子项:列(子项:[
划船(
crossAxisAlignment:crossAxisAlignment.center,
mainAxisAlignment:mainAxisAlignment.spaceBetween,
儿童:[
扩大(
孩子:TextField(
样式:TextStyle(颜色:Colors.black),
控制器:myController,
最大行数:5,
键盘类型:TextInputType.multiline,
)),
尺寸箱(宽度:15),
墨水池(
onTap:(){
_addComment();
},
子:图标(Icons.send))
]),
尺寸箱(高度:10),
扩大(
子项:ListView.builder(
itemCount:_items.length,
itemBuilder:(BuildContext ctxt,int index){
返回填充(
填充:边缘设置。全部(10),
子项:文本(“${(索引+1)}。”+_项[索引]);
}))
])));
}
}

到目前为止,您尝试了什么?使用代码片段和屏幕截图进行解释,以便这里的人能够轻松理解您试图解决的问题。感谢您抽出时间回答我的问题,我尝试了您的答案,但它没有做任何事情。我输入一些数据并点击图标,但它没有做任何事情。请共享您的代码,以便我可以查看您是否正在做没错,我会试着发帖,但现在我不能,问题是,当应用程序打开时,我在一个页面上有一个表单,它显示一个空页面,说你什么都没有,还有一个添加按钮,该按钮路由到表单页面,然后在表单填充后,它通过小部件继承提交回页面,该小部件继承显示一个容器,其中包含表单中的表单值。当我再次执行此操作时,它不会添加另一个容器替换它用新的容器值替换旧的容器值。您现在可以帮助共享您的代码,我将修改它。您可能没有以正确的方式实现它。我给出了一个示例,说明了如何添加多个数据并使用表单进行显示。你可以自己判断你犯了什么错误。我的错,我没有给身体里的控制器打电话。非常感谢@OMi Shah,如果不是太多的话。你能调整代码以路由到另一个页面并显示值吗?再次感谢你