我在flutter项目中遇到了一个小错误。为什么我无法在widget
中滚动?
我已经使用Column
更改了ListView
小部件,添加了SingleScrollView
和CustomScrollView
。怎么了还是我错了?
我的代码
@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
)
],
)),
),
);
}),
)
],
));
}
我想要的是如何使小部件滚动。因为我尝试了所有事情,但是结果是在小部件的外部滚动。
谢谢