我想将广告加载到我的屏幕上,并且我得到了预期的广告,但是问题是由于要加载的项目很多,这会使我的应用变慢。
我要异步加载广告,就像其他项目应该先加载广告一样。我在下面粘贴了代码,将广告放入了容器
static Widget cinemaView(AsyncSnapshot<List<CinemaModel>> snapshot) {
return Column(
children: <Widget>[
Expanded(
child: Container(
child: ListView.builder(
shrinkWrap: true,
itemCount: snapshot.data.length,
itemBuilder: (BuildContext context, int index) {
return GestureDetector(
onTap: () {
Navigator.push(
context,
new MaterialPageRoute(
builder: (context) =>
CinemaNewsDetails(id: snapshot.data[index].id)));
},
child: Card(
elevation: 2.0,
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Stack(
children: <Widget>[
Row(
children: <Widget>[
new Column(
children: <Widget>[
Padding(
padding:
EdgeInsets.only(top: 4.0, bottom: 4.0),
child: Padding(
padding: const EdgeInsets.all(4.0),
child: snapshot.data[index].image.isNotEmpty
? Image.network(
snapshot.data[index].image,
fit: BoxFit.cover,
height: MediaQuery.of(context)
.size
.height /
8,
width: MediaQuery.of(context)
.size
.width /
4,
)
: Image.network(
'https://lh3.googleusercontent.com/zUofRpElgAioazdFZyPTybX3JKFmuBGS0Z0gPR6xuVm3V9f3xGmpUsdTWzNujJWWc5yq',
fit: BoxFit.cover,
),
),
)
],
),
Expanded(
child: Column(
children: <Widget>[
Align(
alignment: Alignment.topLeft,
child: Padding(
padding: const EdgeInsets.only(left: 8.0),
child: Text(snapshot.data[index].title,
overflow: TextOverflow.ellipsis,
maxLines: 3,
style: TextStyle(
fontWeight: FontWeight.w600)),
),
),
Align(
alignment: Alignment.centerLeft,
child: Padding(
padding: const EdgeInsets.only(
top: 5.0, left: 8.0),
child: Text(dateEngine(
snapshot.data[index].publishdate)),
),
),
],
))
],
),
],
),
],
),
),
);
}),
),
),
StreamBuilder<Object>(
stream: null,
builder: (context, snapshot) {
return
Container(
child: AdmobBanner(
adSize: AdmobBannerSize.FULL_BANNER,
adUnitId: unitId,
),
);
}
),
],
);
}
任何帮助将不胜感激