【发布时间】:2020-06-29 07:11:00
【问题描述】:
我正在尝试让列表生成器工作。我正在使用 FutureBuilder,因为我正在填充数据“BoxConstraints 强制无限宽度。”
我已经尝试添加容器、扩展和大小盒。要么我在展示位置上做错了什么,要么我的方向完全错误。请帮忙。
class SubredditList extends StatelessWidget {
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: Provider.of<RedditAPIService>(context, listen: false)
.getSubreddits(),
builder: (context, snapshot) {
if (snapshot.hasData) {
List data = snapshot.data;
return ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: data.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(data[index]['name']),
// subtitle: Image(image: NetworkImage(data[index]['url'])),
);
// Text(data[1]['image'])
});
} else if (snapshot.hasError) {
return Card(child: Text("${snapshot.error}"));
}
return CircularProgressIndicator();
});
}
}
父小部件:
class ViewSubredditAdmin extends StatelessWidget {
static const String id = 'viewSubredditAdmin';
List newsub = List();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: GlobalAppBar(
appbarTitle: 'Subreddit - Admin',
),
body: SafeArea(
child: Column(
children: <Widget>[
SubredditList(),
Container(
child: ButtonBar(
alignment: MainAxisAlignment.center,
children: <Widget>[
RaisedButton(
child: Text("Get New Submissions"),
onPressed: () {
print(
Provider.of<RedditAPIService>(context, listen: false)
.getNewSubmissions(subredditName: 'Python')
.runtimeType);
},
color: Colors.red,
textColor: Colors.yellow,
padding: EdgeInsets.fromLTRB(10, 10, 10, 10),
splashColor: Colors.grey,
),
],
),
),
Container(
child: Center(
child: ViewSubmissionsAdmin(),
),
),
],
),
),
);
}
}
【问题讨论】: