2016-07-01 1 views
0

Я просто попытался включить Adview в свой макет. Работает отлично, за исключением того, что он показывает пустое место, если нет подключения к Интернету. Как я уже читал, я понимаю, что стандартное поведение для admob заключается в том, чтобы использовать пробел только в том случае, если показано объявление. В противном случае, например. нет подключения к Интернету, он не должен занимать место макета. Я листинг кода, где я думаю, что я мог бы сделать ошибку, и именно поэтому я сталкиваюсь это странное поведение ...Adview from 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> 

Затем в приложение 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' 

Я думаю, что я сделал что-то неправильно, поэтому, пожалуйста, помогите мне с советом. Спасибо!

+0

коробка имеет никаких границ или его просто пустое место? – giannisf

+0

Без границ, пустая область ... – Rucsi

+1

Я рекомендую проверить подключение к Интернету и скрывать, если недоступно. – giannisf

ответ

6

Добавить этот код в ваш файл класса

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); 
     } 
    }); 
+0

сообщите мне, что ваша проблема исправлена ​​или нет используя мой код ответа? –

+0

Спасибо, я попробую ... Но я действительно хотел знать, ПОЧЕМУ Я получаю такое поведение. Это происходит постоянно (чтобы оставить это место) всем, и нет другого решения, чтобы просто прослушать слушателя ? ...... – Rucsi

+0

да, только одно решение это. –

Смежные вопросы