List 不在Flatter中创建列表
我的观点是:我有两页。第一个页面有一个textFormField,它的值我发送到第二个屏幕。在第二个屏幕中,我想创建一个列表,列出我从第一页收到的内容。但问题是,该列表从未创建过。它只显示接收到的最后一个元素List 不在Flatter中创建列表,list,flutter,dart,List,Flutter,Dart,我的观点是:我有两页。第一个页面有一个textFormField,它的值我发送到第二个屏幕。在第二个屏幕中,我想创建一个列表,列出我从第一页收到的内容。但问题是,该列表从未创建过。它只显示接收到的最后一个元素 import 'package:flutter/material.dart'; class PageTwo extends StatefulWidget { final String descricao; const PageTwo({Key key, this.descrica
import 'package:flutter/material.dart';
class PageTwo extends StatefulWidget {
final String descricao;
const PageTwo({Key key, this.descricao}) : super(key: key);
@override
_PageTwoState createState() => _PageTwoState();
}
class _PageTwoState extends State<PageTwo> {
final List<String> listDescricao = [];
@override
void initState() {
listDescricao.add(widget.descricao);
super.initState();
}
//List images items
Widget imgListItem() {
return ListView.builder(
itemCount: listDescricao.length,
itemBuilder: (BuildContext context, int index) {
return widget.descricao == null
? Container()
: Text(listDescricao[index]);
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: imgListItem(),
);
}
}
导入“包装:颤振/材料.省道”;
类PageTwo扩展StatefulWidget{
最后的字符串描述符;
constpagetwo({Key-Key,this.descripcao}):super(Key:Key);
@凌驾
_PageTwoState createState()=>\u PageTwoState();
}
类_PageTwoState扩展状态{
最终列表ListDescriptCaO=[];
@凌驾
void initState(){
添加(widget.descripcao);
super.initState();
}
//列出图像项目
小部件imgListItem(){
返回ListView.builder(
itemCount:ListDescription.length,
itemBuilder:(构建上下文,int索引){
return widget.descripcao==null
?容器()
:文本(列表描述[索引]);
});
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:imglistite(),
);
}
}
根据需要,这是第一页:
import 'package:flutter/material.dart';
class PageOne extends StatefulWidget {
@override
_PageOneState createState() => _PageOneState();
}
class _PageOneState extends State<PageOne> {
final GlobalKey<ScaffoldState> _scaffoldkey = new GlobalKey<ScaffoldState>();
final inputDescricaoController = TextEditingController();
//send image
doSend() async {
String descricao = inputDescricaoController.text ??= "";
Navigator.of(context).pushAndRemoveUntil(
MaterialPageRoute(
builder: (BuildContext context) => PageTwo(descricao: descricao)),
(Route<dynamic> route) => false);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: RaisedButton(
child: Column(
children: <Widget>[
TextField(
controller: inputDescricaoController,
),
Text(
'send',
),
],
),
onPressed: () async {
doSend();
},
),
);
}
}
导入“包装:颤振/材料.省道”;
类PageOne扩展StatefulWidget{
@凌驾
_PageOneState createState();
}
类PageOneState扩展了状态{
最终GlobalKey _scaffoldkey=新的GlobalKey();
最终输入描述控制器=文本编辑控制器();
//发送图像
doSend()异步{
字符串descripcao=InputDescriptcaController.text???”;
Navigator.of(context).pushandremoveintil(
材料路线(
生成器:(BuildContext上下文)=>PageTwo(descripcao:descripcao)),
(路由)=>false);
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
主体:升起按钮(
子:列(
儿童:[
文本字段(
控制器:输入控制器,
),
正文(
“发送”,
),
],
),
onPressed:()异步{
doSend();
},
),
);
}
}
您是否可以从第一页添加代码,将文本发送到第二页?您只传递了一个数据,并将其添加到initstate方法中,因此它应该只显示一个值,对吗?提示1:您可能希望传递第1页中的值列表提示2:您知道initstate将被调用多少次吗?@LonelyWolf我刚刚添加了第一个page@MidhunMP它将这样工作:我进入第一页,插入一些数据,然后发送到第二页。在第二页中,它将保存在一个数组中。我想多次这样做,所有这些我想显示在一个列表中,也就是在第二页@MidhunMP建议您必须将字符串列表传递到第二页,而不是一个字符串。如果每次添加字符串时都要转到第二页,则必须将数据保存在某个位置,或将字符串列表传递到第二页,然后将列表发送回第一页将字符串从文本字段添加到列表,并将其传递回第二页。这是您想要的还是您想要将所有字符串添加到第一页的列表中,然后将ti传递到第二页?