Используйте AdView с ViewPager и PagerTitleStrip

У меня есть следующий макет для моего приложения Android, но реклама не отображается. В logcat у меня есть ошибки об "W/Ads﹕ Недостаточно места для показа рекламы. Требуется 640x100, но только 0x1038".

Мой макет:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ViewPager
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">
    <android.support.v4.view.PagerTitleStrip
        android:id="@+id/pager_title_strip"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_gravity="top" />
    </ViewPager>

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

Как я загружаю объявление в Oncreate:

    adView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .addTestDevice("xxxxxxx") //gnex
            .build();
    // Start loading the ad in the background.
    adView.loadAd(adRequest);

Есть идеи?

3 ответа

Решение

Измени это.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<ViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1">
<android.support.v4.view.PagerTitleStrip
    android:id="@+id/pager_title_strip"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="top" />
</ViewPager>

<com.google.android.gms.ads.AdView
    android:id="@+id/adView"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    ads:adSize="BANNER"
    ads:adUnitId="xxxxxxxx"/>
</LinearLayout>

Я подозреваю, что это связано с конфигурацией layout_height для пейджера.

android:layout_height="0dp"

Попробуйте изменить это на

android:layout_height="wrap_content"

Похоже, что теперь есть достаточно места для показа рекламы в линейном макете. Делай ниже вещей. 1) Либо придать вес для просмотра. 2) Или измените линейную компоновку на относительную компоновку, чтобы в adview было достаточно места для отображения. 3) Также проверьте, получаете ли вы объявления в правильных размерах.

Ниже ссылка также может помочь вам.

AdMob Ошибка "Недостаточно места для показа рекламы"

Другие вопросы по тегам