Android - Smart Banner - ширина недостаточна (всегда отсутствует один пиксель) - PullRequest
0 голосов
/ 16 апреля 2019

Я хочу добавить SMART_BANNER внизу моего приложения для Android (HTML5), макет определяется следующим образом

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:background="@color/default_header"
>
<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:background="@color/add_background"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="0dp"
    android:paddingRight="0dp"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"

    ads:adSize="SMART_BANNER"
    ads:adUnitId="@string/ad_banner">
</com.google.android.gms.ads.AdView>
<WebView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/adView"
    android:background="@color/start_background"
    android:id="@+id/webView" /> 

Работает отличнохорошо с "BANNER", но в случае "SMART_BANNER" всегда с всегда один пиксель к маленькому, и отображается следующая ошибка:

W / Ads: недостаточно места для показа рекламы.Требуется 412x90 dp, но только 411x750 dp.W / Ads: недостаточно места для показа рекламы.Требуется 412x90 дп, но только 411x750 дп.

Вопрос: Где я потерял один дп (с 412 до 411)?

Добавить информацию: Я использую эмулятор (из Android Studio).Проблема возникает, если я использую «Pixel 2XL API 26» (баннер SMART не отображается), но баннер отображается правильно, если я использую «Pixel API 28»

С уважением, Andreas

Ответы [ 2 ]

1 голос
/ 16 апреля 2019

вы должны установить ширину и высоту следующим образом:

  <com.google.android.gms.ads.AdView
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="@string/admob_unitid_web">
1 голос
/ 16 апреля 2019

Вам необходимо установить ширину AdView на wrap_content вместо match_parent. По крайней мере, это то, что я делаю с моими AdViews, и это всегда работает независимо от того, BANNER или SMART_BANNER.

[Не по теме] Я также заметил, что в вашем WebView вы написали android:layout_above="@+id/adView". В этом случае вам не нужно объявлять новую ссылку на adView, так как она уже была объявлена ​​ранее. Так что, если вы просто поставите @id/adView вместо @+id, он все равно будет работать.

Также попробуйте удалить эти отступы (даже если они установлены в 0) как из макета, так и из AdView. В том, что я вижу, они не нужны.

...