嗨,我正在制作一个应用程序,我想实现一个横幅广告,如果列表中每5项,在我的有状态类中,我有这样的代码:
@override
Widget build(BuildContext context) {
return Container(
child: ListView.builder(itemBuilder: (context, index) {
return BannerAd(
size: AdSize.banner,
adUnitId: BannerAd.testAdUnitId,
listener: adState.adListener,
request: AdRequest())
..load();
}),
);
}
我正在使用google_mobile_ads:^0.13.0包
问题是因为bannerAd实例是在构建方法中创建的,所以我无法处理它们。因为我没有处理它们,问题随机出现在应用程序上;
您可以将索引的模应用到您想要的位置插入广告
要在每5个项目后插入广告,您可以尝试这样的index % 5 == 0
。下面是片段。
@override
Widget build(BuildContext context) {
return Container(
child: ListView.builder(itemBuilder: (context, index) {
return Column(children: <Widget>[
if (index % 5 == 0 && index != 0) // Will insert ad after every fifth item
Text('Ad Banner inserted after 5th item'), // Your Ad widget
Text('Your normal list item') // Your list item widget.
]);
}),
);
}
为了简单起见,我使用了Text
小部件来指导您的逻辑:(
编辑:创建BannerAd
小部件后,无法对其进行处置。它将在Widget树中,直到父级被销毁。