ListView生成器中的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

我正在尝试使用Listview生成器动态创建无限行。在每一行中,我需要添加无限多的文本字段。为什么嵌套的Listview生成器不起作用

我试着使用Row,然后添加容器,效果很好。为什么Listview生成器不能工作


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和我现在很高兴成为这个社区的一部分:)