如果没有互联网连接,Admob的Adview会显示空白框

时间:2016-07-01 12:46:11

标签: android admob ads adview

我只是尝试在我的布局中加入Adview。工作正常,但如果没有Internet连接则显示空格。正如我到目前为止所读到的,我理解admob的标准行为是仅在显示广告时占用空间。否则,例如。没有互联网连接,它不应该占用任何布局空间。我列出了我认为我可能犯了错误的代码,这就是我遇到这种奇怪行为的原因......

<LinearLayout
       xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:app="http://schemas.android.com/apk/res-auto"
       xmlns:tools="http://schemas.android.com/tools"
       xmlns:ads="http://schemas.android.com/apk/res-auto"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:orientation="vertical"
       android:background="#FFFFFF"
       android:weightSum="1">

    <android.support.v7.widget.Toolbar
       android:id="@+id/toolbar"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:background="?attr/colorPrimary"
       android:theme="@style/AppTheme.AppBarOverlay"
       app:popupTheme="@style/AppTheme.PopupOverlay" />

    <include layout="@layout/content_main"
       android:layout_width="match_parent"
       android:layout_height="0dp"
       android:layout_weight="1"
       app:layout_behavior="@string/appbar_scrolling_view_behavior"/>


    <com.google.android.gms.ads.AdView
      android:id="@+id/adView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerInParent="true"
      ads:adSize="BANNER"
      ads:adUnitId="@string/banner_ad_unit_id">
    </com.google.android.gms.ads.AdView>
</LinearLayout>

然后,在app gradle中:

dependencies {
 compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:design:23.4.0'
    compile 'com.google.firebase:firebase-core:9.2.0'
    compile 'com.google.firebase:firebase-ads:9.2.0'
 }
apply plugin: 'com.google.gms.google-services'

在模块gradle中:

dependencies {
    classpath 'com.android.tools.build:gradle:2.1.0'
    classpath 'com.google.gms:google-services:3.0.0'

我认为我做错了什么,所以请帮我一个建议。 谢谢!

1 个答案:

答案 0 :(得分:7)

  

将此代码添加到您的类文件

AdView adView = (AdView)findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    adView.loadAd(adRequest);
adView.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            super.onAdLoaded();
            adView.setVisibility(View.VISIBLE);
        }

        @Override
        public void onAdFailedToLoad(int errorCode) {
            super.onAdFailedToLoad(errorCode);
            adView.setVisibility(View.GONE);
        }
    });