Используйте 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) Также проверьте, получаете ли вы объявления в правильных размерах.
Ниже ссылка также может помочь вам.