Flutter Widget无法滚动

时间:2019-06-20 09:19:10

标签: flutter

我在flutter项目中遇到了一个小错误。为什么我无法在widget中滚动?

我已经使用Column更改了ListView小部件,添加了SingleScrollViewCustomScrollView。怎么了还是我错了?

我的代码

 @override
  Widget build(BuildContext context) {
    bloc.Data();
    return Scaffold(
        appBar: AppBar(
          title: Text("Some project"),
        ),
        body: SingleChildScrollView(
          child: ConstrainedBox(
              constraints: BoxConstraints(),
              child: new Container(
                child: StreamBuilder(
                  stream: bloc.Datas,
                  builder: (context, AsyncSnapshot<DataModels> snapshot) {
                    if (snapshot.hasData) {
                      return _List(snapshot);
                    } else if (snapshot.hasError) {
                      return Text(snapshot.error.toString());
                    }
                    return Center(child: CircularProgressIndicator());
                  },
                ),
              )),
        ));
  }

  Widget _List(AsyncSnapshot<DataModels> snapshot) {
    return Container(
        padding: EdgeInsets.all(15.0),
        child: SizedBox(
            child: ListView(
          shrinkWrap: true,
          children: <Widget>[menuList(snapshot), blogList(snapshot)],
        )));
  }

  Widget menuList(AsyncSnapshot<DataModels> snapshot) {
    return Card(
        child: GridView.builder(
      shrinkWrap: true,
      itemCount: snapshot.data.data[0].items.length,
      gridDelegate:
          new SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3),
      itemBuilder: (BuildContext context, int index) {
        return Column(
          crossAxisAlignment: CrossAxisAlignment.center,
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Container(
              padding: EdgeInsets.all(10.0),
              child: Image.network(
                '//Snapshot data',
                fit: BoxFit.cover,
                height: 35.0,
              ),
            ),
            Container(
              child: Text(
                  //Snapshot data
                ),
            )
          ],
        );
      },
    ));
  }

  Widget blogList(AsyncSnapshot<DataModels> snapshot) {
    return Container(
        child: Column(
          //shrinkWrap: true,
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            Container(
               margin: EdgeInsets.only(top: 10.0, bottom: 5.0),
              child: Text(
                //Snapshot data
              ),
            ),
            Container(
              child: ListView.builder(
                  shrinkWrap: true,
                  itemCount: snapshot.data.data[1].items.length,
                  itemBuilder: (BuildContext context, int index) {
                    return Container(
                      margin: EdgeInsets.only(bottom: 10.0),
                      child: GestureDetector(
                        onTap: () => openBrowser(snapshot.data.data[1].items[index].link),
                        child: Card(
                            child: new Column(
                          crossAxisAlignment: CrossAxisAlignment.start,
                          children: <Widget>[
                            new Image.network(
                                //Snapshot data
                            new Padding(
                              padding: new EdgeInsets.all(7.0),
                              child: Text(
                                  //Snapshot data
                            )
                          ],
                        )),
                      ),
                    );
                  }),
            )
          ],
        ));
  }

我想要的是如何使小部件滚动。因为我尝试了所有事情,但是结果是在小部件的外部滚动。

Scroll Goals

谢谢

0 个答案:

没有答案