ListView生成器中的ListView生成器
我正在尝试使用Listview生成器动态创建无限行。在每一行中,我需要添加无限多的文本字段。为什么嵌套的Listview生成器不起作用 我试着使用Row,然后添加容器,效果很好。为什么Listview生成器不能工作ListView生成器中的ListView生成器,listview,flutter,Listview,Flutter,我正在尝试使用Listview生成器动态创建无限行。在每一行中,我需要添加无限多的文本字段。为什么嵌套的Listview生成器不起作用 我试着使用Row,然后添加容器,效果很好。为什么Listview生成器不能工作 import 'package:flutter/material.dart'; void main() { runApp(MainScreen()); } class MainScreen extends StatefulWidget { @override Sta
import 'package:flutter/material.dart';
void main()
{
runApp(MainScreen());
}
class MainScreen extends StatefulWidget
{
@override
State<StatefulWidget> createState() {
return _MainScreenState();
}
}
class _MainScreenState extends State<MainScreen>{
int number = 1;
@override
void initState() {
// TODO: implement initState
super.initState();
}
@override
Widget build (BuildContext ctxt) {
var fieldslist = <Widget>[];
for (var i = 0; i < 10; i++) {
fieldslist.add(
new Container(
width: 100,
padding: EdgeInsets.all(4),
child:TextField(
keyboardType: TextInputType.number
)
)
);
}
return MaterialApp(
home: Scaffold(
appBar: new AppBar(title: new Text("Scores Screen"),),
body: new Column(
children: <Widget>[
new Row(
children: <Widget>[
new RaisedButton(
child: new Text("Add Scores"),
onPressed: (){
number++;
this.setState(()=>{});
})
],
),
new Expanded(
child: new ListView.builder
(
itemCount: number,
itemBuilder: (BuildContext ctxt, int index) {
new Expanded(
child: new ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: 7,
itemBuilder: (BuildContext ctxt, int index){
return new Container(
width: 100,
padding: EdgeInsets.all(4),
child:TextField(
keyboardType: TextInputType.number
)
);
}
)
);
}
)
)
],
)
)
);
}
}
进口“包装:颤振/材料.省道”;
void main()
{
runApp(主屏幕());
}
类MainScreen扩展StatefulWidget
{
@凌驾
状态createState(){
返回_MainScreenState();
}
}
类_MainScreenState扩展状态{
整数=1;
@凌驾
void initState(){
//TODO:实现initState
super.initState();
}
@凌驾
小部件构建(BuildContext-ctxt){
var fieldslist=[];
对于(变量i=0;i<10;i++){
fieldslist.add(
新容器(
宽度:100,
填充:边缘设置。全部(4),
孩子:TextField(
键盘类型:TextInputType.number
)
)
);
}
返回材料PP(
家:脚手架(
appBar:new appBar(标题:新文本(“分数屏幕”),),
正文:新栏目(
儿童:[
新行(
儿童:[
新升起的按钮(
子项:新文本(“添加分数”),
已按下:(){
数字++;
this.setState(()=>{});
})
],
),
新扩展(
子项:新建ListView.builder
(
itemCount:number,
itemBuilder:(BuildContext ctxt,int index){
新扩展(
子项:新建ListView.builder(
滚动方向:轴水平,
物品计数:7,
itemBuilder:(BuildContext ctxt,int index){
退回新货柜(
宽度:100,
填充:边缘设置。全部(4),
孩子:TextField(
键盘类型:TextInputType.number
)
);
}
)
);
}
)
)
],
)
)
);
}
}
屏幕是空白的,当我单击按钮时不会发生任何事情。如果我理解正确,您希望在vertival listview中有一个水平滚动列表吗 如果是,您是否为您的水平列表尝试过类似的内容:
Row(
children: <Widget>[
SizedBox(
width: MediaQuery.of(context).size.width * 0.85,
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(children: _yourList),
),
)
],
)
行(
儿童:[
大小盒子(
宽度:MediaQuery.of(context).size.width*0.85,
子:SingleChildScrollView(
滚动方向:轴水平,
child:Row(children:u yourList),
),
)
],
)
如果我理解正确,您希望在vertival listview中有一个水平滚动列表吗
如果是,您是否为您的水平列表尝试过类似的内容:
Row(
children: <Widget>[
SizedBox(
width: MediaQuery.of(context).size.width * 0.85,
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(children: _yourList),
),
)
],
)
行(
儿童:[
大小盒子(
宽度:MediaQuery.of(context).size.width*0.85,
子:SingleChildScrollView(
滚动方向:轴水平,
child:Row(children:u yourList),
),
)
],
)
是的,这正是我想要的。我试图集成您的代码,但这也没有帮助。当我点击按钮时,什么也没有发生。我可以添加像这样的功能新行(子项:)````。但是我不能滚动,它在UI屏幕上给我错误。好吧,如果你想在按下时更新你的号码,你可以把你的“number++”放在你的setState方法中。(欢迎来到stackoverflow,我刚刚看到)关于滚动问题,您必须使用这些小部件。也许你可以把我小时候的密码放在卡片上?(我现在不能尝试)我刚想出来。在SingleChildScrollView中用小部件列表包装行,它就可以工作了。非常感谢,妮可和我现在很高兴成为这个社区的一员:)是的,这正是我想要的。我试图集成您的代码,但这也没有帮助。当我点击按钮时,什么也没有发生。我可以添加像这样的功能新行(子项:)````。但是我不能滚动,它在UI屏幕上给我错误。好吧,如果你想在按下时更新你的号码,你可以把你的“number++”放在你的setState方法中。(欢迎来到stackoverflow,我刚刚看到)关于滚动问题,您必须使用这些小部件。也许你可以把我小时候的密码放在卡片上?(我现在不能尝试)我刚想出来。在SingleChildScrollView中用小部件列表包装行,它就可以工作了。非常感谢,Nicole和我现在很高兴成为这个社区的一部分:)