【问题标题】:flutter admob remove on back button颤振 admob 移除后退按钮
【发布时间】:2020-02-27 00:23:52
【问题描述】:

有人可以为我指出集成 admob 的正确方向吗?

我能够获得插件https://pub.dev/packages/ads 显示广告,但是当用户更改小部件时我无法让它卸载广告。

有人知道怎么做吗?

class SecondRoute extends StatelessWidget {
  final article;
  Ads appAds;

  final String appId = "ca-app-pub-4999865903647931~XXXXXXXXXX";
  final String bannerUnitId = "ca-app-pub-4999865903647931/XXXXXXXxX";


  // In the constructor, require a Todo.
  SecondRoute({Key key, @required this.article}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    appAds = Ads(
      appId,
      bannerUnitId: bannerUnitId,
      // screenUnitId: screenUnitId,
      // keywords: <String>['ibm', 'computers'],
      // contentUrl: 'http://www.ibm.com',
      //childDirected: false,
      testDevices: ['SM_A305YN:5554'],
      testing: true,
      listener: eventListener,
    );
    appAds.showBannerAd(anchorType: AnchorType.top, anchorOffset: 120);

    return Scaffold(
      appBar: AppBar(
        backgroundColor: Colors.redAccent,
        title: Text(article['title']),
        leading: new IconButton(
            icon: new Icon(Icons.arrow_back),
            onPressed: (){
              appAds.hideBannerAd();
            }
        ),
      ),
      body: Center(
                  child: Container(
                    margin: const EdgeInsets.only(top: 40.0),
                      child: new SingleChildScrollView(
                        child: Card(
                          child: new Container(
                          padding: new EdgeInsets.all(10.0),
                                  child: Column(
                                      children: <Widget>[
                                        Image.network(article['image'], fit: BoxFit.fitWidth),
                                        Html(data: article['content']),

                                      ]
                                  ),
                              ),
                        ),
                      ),
                      )

      )
    );


  }
}

我希望当用户点击后退按钮时,它会移除 appAds 横幅。

【问题讨论】:

  • 您是否尝试将SecondRoute 设为有状态小部件?您可以尝试将 hideBannerAd 函数包装在 setState 中。不确定这是否可行,我对那个包不是很熟悉
  • @DerekFredrickson 什么是最好的 admob 包?

标签: flutter admob


【解决方案1】:

创建有状态小部件而不是无状态小部件,并在您想要停止广告时调用 dispose 方法。

_ads?.dispose()

【讨论】: