我使用flutter_google_ad_manager插件。在onAdFailedToLoad的情况下,我想呈现其他窗口小部件,而不是DFPBanner窗口小部件。我怎样才能做到这一点?当我在onAdFailedToLoad:(errorCode){...}中调用一个小部件时,它没有被渲染。为什么?
Container(
margin: EdgeInsets.only(top: 16, bottom: 16),
child: DFPBanner(
isDevelop: false,
//testDevices: MyTestDevices(),
adUnitId: '/XXXXXXXX/MyAdunit',
adSize: DFPAdSize.MEDIUM_RECTANGLE,
onAdFailedToLoad: (errorCode) {
// how to render different widget in case of no fill
return Text("render some other widget here");
},
),
),
答案 0 :(得分:0)
您需要构建一个基于值渲染小部件的函数,假设您有一个boolean
标志来检查要渲染的小部件,该函数如下:
_renderWidget() {
if(flag) {
return DFPBanner(
isDevelop: false,
//testDevices: MyTestDevices(),
adUnitId: '/XXXXXXXX/MyAdunit',
adSize: DFPAdSize.MEDIUM_RECTANGLE,
onAdFailedToLoad: (errorCode) {
setState((){
flag = false;
})
},
),
} else {
return Text("render some other widget here");
}
}
然后在您的Container
内使用该函数将其构建为子级:
Container(
margin: EdgeInsets.only(top: 16, bottom: 16),
child: _renderWidget()
),
当然,这需要在StatefulWidget
内部完成,并且您需要在bool flag = true;
中声明State
变量。希望这会有所帮助。