[英]My application stopped launching with google_mobile_ads: ^0.13.0 package flutter
[英]google_mobile_ads 0.13.0 plugin banner ads are auto reload when setstate call in flutter app
我嘗試使用 setstate function 更新 ui 但自動 admob 廣告被重新加載,當與音頻播放器一起使用時,廣告閃爍或重建速度非常快 Z81106A3165374E67F45440C56AFA19 橫幅廣告小部件任何人都知道如何在 flutter import 'package:flutter/material.dart' 中解決這個問題; 導入“包:google_mobile_ads/google_mobile_ads.dart”;
class BannerAdUnit1 extends StatefulWidget {
@override
_BannerAdUnit1State createState() => _BannerAdUnit1State();
}
class _BannerAdUnit1State extends State<BannerAdUnit1> {
static BannerAd myBanner;
bool showAds = false;
@override
void initState() {
bannerAd();
super.initState();
myBanner.load();
myBanner..responseInfo;
}
BannerAd bannerAd() {
myBanner = new BannerAd(
adUnitId: 'ca-app-pub-3940256099942544/6300978111',
size: AdSize.smartBanner,
request: AdRequest(),
listener: BannerAdListener(
onAdLoaded: (ad) {
print('admob is loaded or loading');
setState(() {
showAds = true;
});
},
onAdFailedToLoad: (ad, error) {
print('admob is dispose or disposing');
ad.dispose();
setState(() {
showAds = false;
});
},
),
);
return myBanner;
}
@override
void dispose() {
super.dispose();
myBanner.dispose();
}
@override
Widget build(BuildContext context) {
print('printing ads widget fxn.....................');
return showAds
? Container(
height: 52,
width: double.infinity,
margin: EdgeInsets.only(bottom: 5, top: 5,
left: 8, right: 8),
child: AdWidget(
key: UniqueKey(),
ad: myBanner,
),
)
: Container();
}
}
這個使用橫幅代碼作為小部件
嘗試將 showAd = false 置於 initstate
嘗試這個:
`class BannerAdUnit1 extends StatefulWidget {
@override
_BannerAdUnit1State createState() => _BannerAdUnit1State();
}
class _BannerAdUnit1State extends State<BannerAdUnit1> {
static BannerAd myBanner;
bool showAds = false;
@override
void initState() {
bannerAd();
super.initState();
myBanner.load();
myBanner..responseInfo;
bool showAds = false;
}
BannerAd bannerAd() {
myBanner = new BannerAd(
adUnitId: 'ca-app-pub-3940256099942544/6300978111',
size: AdSize.smartBanner,
request: AdRequest(),
listener: BannerAdListener(
onAdLoaded: (ad) {
print('admob is loaded or loading');
setState(() {
showAds = true;
});
},
onAdFailedToLoad: (ad, error) {
print('admob is dispose or disposing');
ad.dispose();
setState(() {
showAds = false;
});
},
),
);
return myBanner;
}
@override
void dispose() {
super.dispose();
myBanner.dispose();
}
@override
Widget build(BuildContext context) {
print('printing ads widget fxn.....................');
return showAds
? Container(
height: 52,
width: double.infinity,
margin: EdgeInsets.only(bottom: 5, top: 5,
left: 8, right: 8),
child: AdWidget(
key: UniqueKey(),
ad: myBanner,
),
)
: Container();
}
} `
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.