ListView Builder中的ListView构建器

时间:2019-04-04 09:56:48

标签: listview flutter

我正在尝试使用Listview构建器动态创建无限行。在每一行中,我需要添加无限数量的textFields。为什么嵌套的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
                                        )
                                    );


                                  }
                              )

                          );

                    }
                )
            )
          ],
        )
      )
    );
  }


}



屏幕空白,当我单击按钮时什么也没发生。

1 个答案:

答案 0 :(得分:0)

如果我没有正确理解,您想要在列表视图内部添加水平可滚动列表吗?

如果是,您是否为水平列表尝试过类似的方法:

Row(
        children: <Widget>[
          SizedBox(
            width: MediaQuery.of(context).size.width * 0.85,
            child: SingleChildScrollView(
              scrollDirection: Axis.horizontal,
              child: Row(children: _yourList),
            ),
          )
        ],
      )