【发布时间】:2020-09-11 07:44:26
【问题描述】:
我在颤振项目中使用 firebase_admob 包,当我在第一个屏幕上加载并显示横幅广告时,它会正确加载并显示,但是当我导航到不包含横幅的新屏幕时,旧的横幅仍然显示在新屏幕上,
这是在 initState() 中调用的横幅的创建代码
BannerAd createBannerAd() {
return BannerAd(
adUnitId: BannerAd.testAdUnitId,
//Change BannerAd adUnitId with Admob ID
size: AdSize.smartBanner,
targetingInfo: AdsUtil.targetingInfo,
listener: (MobileAdEvent event) {
if (event == MobileAdEvent.loaded) {
// dispose after you received the loaded event seems okay.
if (mounted) {
_bannerAd..show();
setState(() {
isBannerShown = true;
});
} else {
_bannerAd = null;
setState(() {
isBannerShown = false;
});
}
} else if (event == MobileAdEvent.failedToLoad) {
_bannerAd = null;
setState(() {
isBannerShown = false;
});
}
// print("********** ********** BannerAd $event");
});
}
@override
void dispose() {
_bannerAd.dispose();
super.dispose();
}
导航到第二个屏幕代码:
IconButton(
icon: Icon(Icons.settings),
onPressed: () {
Navigator.of(context).pushNamed(SettingsPage.routeName);
},
),
我想找到一个解决方案,当我导航到新屏幕时,旧横幅会被破坏并且不会显示在我导航到的新屏幕中。
谢谢
【问题讨论】:
-
你能在显示广告的地方显示代码吗?
-
1.您是否在页面转换期间/之前推动了热重载? 2. 它是在调试期间发生还是在发布应用程序中也发生?我怀疑它正在发生,因为 adview 被呈现为本机视图并且由于某种原因它没有被处理。
-
@Adnankarim :我在问题中显示的 createBannerAd() 方法中显示添加:_bannerAd..show();
-
@SanjaySharma 即使在发布应用程序中也没有处理,我可以在 WillPopScope 上处理横幅,但是当我返回第一个屏幕时,它将无法显示横幅。
-
可以分享屏幕间导航的代码吗?