【发布时间】:2020-02-26 19:35:53
【问题描述】:
我在颤振中使用 firebase_admob,我想在 ListView.separated 中显示广告。
void initState(){
FirebaseAdMob.instance.initialize(appId: 'ca-app-pub-XXXXXXXXXXXXXXXXXXXXXXX');
}
static const MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo(
keywords: <String>['flutterio', 'beautiful apps'],
contentUrl: 'https://flutter.io',
childDirected: false,
testDevices: <String>[], // Android emulators are considered test devices
);
BannerAd myBanner = BannerAd(
// Replace the testAdUnitId with an ad unit id from the AdMob dash.
// https://developers.google.com/admob/android/test-ads
// https://developers.google.com/admob/ios/test-ads
adUnitId: BannerAd.testAdUnitId,
size: AdSize.smartBanner,
targetingInfo: targetingInfo,
listener: (MobileAdEvent event) {
print("BannerAd event is $event");
},
);
以及我想在哪里展示广告:
return ListView.separated(
padding: EdgeInsets.zero,
itemCount: data.articles.length,
separatorBuilder: (context, index) {
if (index % 5 == 0) { // Display `AdmobBanner` every 5 'separators'.
return myBanner;
}
return Divider();
},
但我遇到了这个问题:错误:返回类型“BannerAd”不是匿名闭包定义的“小部件”。 (return_of_invalid_type_from_closure 在 lib\src\ui\home\home_screen.dart:445)。
什么是最好的解决方案?
谢谢
【问题讨论】:
-
我认为使用 admob 是不可能的,因为 BannerAd 类没有构建小部件或返回小部件。我认为 admob_flutter 包是可能的:pub.dev/packages/admob_flutter#-readme-tab-
-
是的,我认为你是对的。谢谢